创建一个顺序表(数据元素个数为5),
输出顺序表中的所有数据元素
查找第3个位置上的元素
查找元素15是否在顺序表中,如果在,请输出该元素在顺序表中的位置
在顺序表中的第1个位置插入数据0
删除刚刚插入的元素
输出顺序表中的所有数据元素

#include <stdio.h>
#define MAXSIZE 100
typedef struct {int elem[MAXSIZE];int last;
} SeqList;
void InitList(SeqList*L) {L->last=-1;
}
void CreateList(SeqList*L,int n) {int i;printf("请输入%d个整数: ",n);for(i=0; i<n; i++)scanf("%d",&L->elem[i]);L->last=i-1;
}
int GetData(SeqList*L,int i,int*x) {if(i<1||i>L->last+1)return 0;else {*x=L->elem[i-1];return 1;}
}
int Locate(SeqList*L,int e) {int i=0;while(i<=L->last&&L->elem[i]!=e);i++;if(i>L->last)return 0;elsereturn i+1;
}
int InsList(SeqList*L,int i,int e) {int j;if(L->last>=MAXSIZE-1) {printf("顺序表已满");return -1;}if(i<1||i>L->last+2) {printf("插入位置出错");return 0;}for(j=L->last; j>=i-1; j--)L->elem[j+1]=L->elem[j];L->elem[i-1]=e;L->last++;return 1;
}int DelElem(SeqList*L,int i,int*e) {int j;if(L->last==-1) {printf("顺序表为空");return 0;}if(i<1||i>L->last+1) {printf("不存在第i个元素");return 0;}*e=L->elem[i-1];for(j=i; j<=L->last; j++)L->elem[j-1]=L->elem[j];L->last--;return 1;
}void DispList(SeqList*L) {int i;for(i=0; i<=L->last; i++)printf("%5d",L->elem[i]);
}int main() {SeqList L;int n,i,x,loc;printf("请输入建立线性表的个数: ");scanf("%d",&n);CreateList(&L,n);printf("建立的线性表为: ");DispList(&L);printf("请输入要查看表中位置: ");scanf("%d",&i);if(GetData(&L,i,&x))printf("当前线性表第%d个元素的值为:%d\n",i,x);elseprintf("输入的位置错误");printf("请输入要查找的元素值为:");scanf("%d",&x);loc=Locate(&L,x);if(loc)printf("查找元素值为%d的位置为:%d\n",x,loc);elseprintf("该表中无此元素");printf("请输入要插入的位置:");scanf("%d",&i);printf("请输入要插入的元素值:");scanf("%d",&x);if(InsList(&L,i,x)) {printf("已成功在第%d的位置上插入%d,插入后的线性表为:\n",i,x);DispList(&L);} elseprintf("输入插入的参数错误");printf("请输入要删除元素的位置:");scanf("%d",&i);if(DelElem(&L,i,&x)) {printf("已成功在第%d的位置上删除%d,删除后的线性表为:\n",i,x);DispList(&L);} elseprintf("\n输入删除的参数错误");
}

运行结果如下

顺序表基本操作算法——基础代码(C语言)相关推荐

  1. 顺序表的c语言结构体描述,顺序表的基本方法实现C语言版

    顺序表--------------线性表的第一个儿子 这个儿子的结构体定义: typedef int ElemType;//取别名 typedef struct link{ ElemType * he ...

  2. 顺序表基本操作<小白一听就懂!!!><超详细><接地气>

    顺序表基本操作<小白一听就懂!!!><超详细>&&<接地气> ***小编前言*** 完整代码 // 头文件 //主函数 // 初始化 /*运用指针* ...

  3. 数据结构线性表的逻辑结构(三)顺序表基本操作的实现

    一. 实验目的 1. 掌握线性表的逻辑结构: 2. 顺序表基本操作的实现: 3. 掌握利用C/C++编程语言实现数据结构的编程方法: 4. 通过上机时间加强利用数据结构解决实际应用问题的能力: 二.  ...

  4. 顺序表插入算法的时间复杂度以及顺序表常考问题

    插入算法的实现思路 假设我们要在第3个位置(i=3)上插入某一个数,顺序表初始化为P=(1,2,3,4,5,6).我们可以根据下面的图示理解整个算法过程. 需要注意的是,插入位置i是表示第几个位置而不 ...

  5. 【PTA】6-1 顺序表基本操作(10 分)

    题目来自 网络与信息安全-数据结构作业1-数据结构基本概念 6-1 https://fancyking.ml/archives/71 原题描述 6-1 顺序表基本操作(10 分) 本题要求实现顺序表元 ...

  6. 6-2 顺序表基本操作 (10 分)

    6-2 顺序表基本操作 (10 分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数. L是一个顺序表, 函数Status ListInsert_Sq(SqList &L ...

  7. 索引顺序表查找算法(分块查找)

    算法背景 有时候,可能会遇到这样的表:整个表中的元素未必有序,但若划分为若干块后,每一块中的所有元素均小于(或大于)其后面块中的所有元素.我们称这种为分块有序. 对于分块有序表的查找 首先,我们需要先 ...

  8. 6-2 顺序表基本操作 (10分)

    6-2 顺序表基本操作 (10分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数.L是一个顺序表,函数Status ListInsert_Sq(SqList &L, i ...

  9. python代码大全表解释-Python中顺序表的实现简单代码分享

    顺序表python版的实现(部分功能未实现) 结果展示: 代码示例: #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object ...

最新文章

  1. Java应用程序项目的打包与发行
  2. 第90节:Java中的Linux基础
  3. 定义根目录, window格式 转化为linux格式
  4. K8S删除某一个命名空间下所有的pod deployment statefulset命令
  5. python调用r语言_【Python调用第三方R包】【环境变量设置】Python 通过rpy2调用 R语言...
  6. 有关 MyEclipse-export runnable jar file选项 launch configuration里面没有可以选择的东西的解决方法...
  7. 一文梳理JavaScript中常见的七大继承方案
  8. 计算机与体育教育的关系,体育教学论文:健康教育与体育教育存在的问题研究...
  9. 测试 System.SysUtils.TStringHelper
  10. RocketMq学习笔记001---Kafka,ActiveMQ、RabbitMQ、RocketMQ消息中间件的对比
  11. keepalived(二)vip漂移
  12. 【leetcode】力扣算法:杨辉三角 java语言解题
  13. 《明朝那些事儿》--主要人物整理
  14. 恍恍惚惚,哈哈,35. Search Insert Position
  15. 五点差分法 matlab,【五点|五点差分法(matlab)解椭圆型偏微分方程】
  16. vue2.0 唤起百度地图app_高德地图公测“你好小德”语音助手:解决十大驾车导航痛点...
  17. 用PS修改GIF动图循环播放次数
  18. 科技+卫生=智慧公厕,城市焕然一新!
  19. webpack - 基础配置教程
  20. LW_OOPC.H 面向对象C MISOO 头文件

热门文章

  1. PWM整流技术的具体应用
  2. Ubuntu ssh上传下载文件
  3. 详说Java内存模型(JMM)
  4. 南京廖华微型计算机原理答案,微机原理与应用教材课后复习题与答案
  5. 关于 IT 系统可用性的一个粗略模型
  6. 西门子PLC-Modbus数据交互
  7. JAVA 半角全角相互转换
  8. 一文看懂产品运营的分析方法
  9. C语言 字符串值转换成整型数值的方法
  10. 【下载eclipse旧版本】