#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 //顺序表的最大长度;
int k=0;//全局变量,用于循环;
typedef int elemtype;//元素类型;
typedef struct{elemtype data[MAXSIZE];//用数组存储线性表的元素;int length;//顺序表的长度,元素个数;
}SqList;
void InitList(SqList *L)//初始化顺序表;
{L->length=0;//初始化顺序表就是将顺序表初始化为空,长度为零;
}
int ListLength(SqList *L)//求顺序表长度,也就是顺序表中元素个数;
{if(L==NULL)return 0;elsereturn L->length;
}
int GetElem(SqList L,int i,elemtype *e)//查找第i个元素,并用e返回;
{if(L.length == 0 || i < 1 || i > L.length)//判断序号是否合法{printf("输入不合法,查询不到该元素位置!\n");return 0;}printf("查询位置为%d的元素\n",i);*e=L.data[i-1];//数据元素的序号从1开始,数组从0开始,所以第i个元素对应的数组下标为i-1;return 0;
}
int LocateElem(SqList L,elemtype e)//根据内容查找元素e在表中的位置;
{for(k=0;k<L.length;k++){if(L.data[k]==e){printf("已查到%d,%d的位置为:",e,e);return k+1;}}return 0;
}
int ListInsert(SqList *L,int i,elemtype e)//插入元素
{if(L->length==MAXSIZE){printf("顺序表已满,不能再继续插入元素!\n");return 0;}if(i<1||i>L->length+1){printf("输入有误,请重新输入!\n");return 0;}else{for(k=L->length;k>=i-1;k--)//将每个元素向后移L->data[k+1]=L->data[k];L->data[i-1]=e;//插入新元素L->length++;//长度++;return 1;}
}
int ListDelete(SqList *L,int i,elemtype *e)//删除第i个元素e,之后将其备份给变量e返回。
{if(L->length==0)return 0;if(i<1||i>L->length){printf("输入有无,请重新输入!\n");return 0;}*e=L->data[i-1];for(k=i;k<L->length;k++)L->data[k-1]=L->data[k];L->length--;return 0;
}
int EmptyList(SqList L)//判断表是否为空
{if(L.length==0)printf("顺序表为空\n");elseprintf("顺序表不为空\n");
}
int ShowList(SqList L)//打印顺序表;
{if(L.length==0){printf("顺序表为空!\n");return 0;}for(k=0;k<L.length;k++)printf("第%d个元素为%d\n",k+1,L.data[k]);return 1;
}
int main()
{elemtype e;SqList list1;InitList(&list1);list1.data[0] = 1;list1.data[1] = 2;list1.data[2] = 3;list1.data[3] = 13;list1.data[4] = 23;list1.data[5] = 54;list1.length = 6;printf("%d\n", LocateElem(list1, 23));ShowList(list1);printf("表长为:%d\n",ListLength(&list1));printf("-------------------");ListInsert(&list1,7,43);printf("\n");printf("插入的元素为43\n");printf("插入元素后的顺序表为:\n");ShowList(list1);printf("表长为:%d\n",ListLength(&list1));printf("-------------------\n");ListDelete(&list1,4,&e);printf("要删除的元素为:%d\n",e);printf("删除元素后的顺序表为:\n");ShowList(list1);printf("表长为%d\n",ListLength(&list1));printf("-------------------\n");GetElem(list1,4,&e);printf("查询位置的元素为%d\n",e);ShowList(list1);EmptyList(list1);return 0;
}

参考:
《数据结构》学习指导与实验指导书(第二版
【数据结构】顺序表的c语言实现------找之余
传送门

《数据结构》实验报告(一)顺序表基本操作相关推荐

  1. 数据结构实验报告,二叉树的基本操作(C语言)

    数据结构实验报告,二叉树的基本操作(C语言) 作者:命运之光 专栏:数据结构 目录 数据结构实验报告,二叉树的基本操作(C语言) 实验六 二叉树的基本操作 一.需求分析 二.概要设计 三.详细设计 四 ...

  2. 数据结构实验报告:图的基本操作及应用

                                                图的遍历 一.实验目的 1.使学生可以巩固所学的有关图的基本知识. 2.熟练掌握图的存储结构. 3.熟练掌握图的 ...

  3. 北京理工大学计算机实验四报告表,北京理工大学数据结构实验报告实验四

    北京理工大学数据结构实验报告实验四 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 <数据结构与算法设计>实验报告--实 ...

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

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

  5. 实验报告: 线性表的基本操作及应用

    实验报告: 线性表的基本操作及应用 实验内容 基本要求: (1)实现单链表的创建:(2)实现单链表的插入:(3)实现单链表的删除 (4)实现单链表的查找:(5)实现单链表的显示: /*Name:Lin ...

  6. C语言数据结构线性表上机实验报告,数据结构实验报告实验一线性表_图文

    数据结构实验报告实验一线性表_图文 更新时间:2017/2/11 1:23:00  浏览量:763  手机版 数据结构实验报告 实验名称: 实验一 线性表 学生姓名: 班 级: 班内序号: 学 号: ...

  7. 数据结构 稀疏矩阵三元组顺序表 基本操作

    [数据结构]稀疏矩阵 三元组顺序表存储 基本操作 1.稀疏矩阵定义: 假设在 mn 的矩阵中,又t个元素不为零.δ = t/mn ,称δ为矩阵的稀疏因子,通常定义δ小于等于0.05时称为稀疏矩阵. 2 ...

  8. 桂电七院数据结构实验报告一

    顺序表的基本操作 实验内容与步骤 实现顺序表上的插入.删除等操作.调试程序并对相应的输出作出分析:修改输入数据,预期输出并验证输出的结果.加深对有关算法的理解. 步骤: 第一步:定义顺序表的存储结构. ...

  9. 数据结构实验报告(一)

    数据结构实验报告(一) 一.实验名称 实验一  线性表的基本操作实现及其应用 二.实验目的 1.熟练掌握线性表的结构特点,掌握顺序表的基本操作. 2.巩固 C++相关的程序设计方法与技术. 3.学会使 ...

  10. 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置

    <(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...

最新文章

  1. 计算机虚拟网络毕业论文,计算机毕业论文——基于WEB的虚拟计算机网络实验平台.doc...
  2. 利用HTML5开发Android
  3. 整体思考自动化测试发展和价值回报
  4. 使用百度地图实现详细地址自动补全
  5. apache应用进阶
  6. 剑指offer 回溯法 面试题12 矩阵中的路径 面试题13 机器人的运动范围
  7. *【计蒜客 - 蓝桥训练】人以群分(二分 + dp)
  8. 使用Pytorch处理多维特征的输入
  9. java代码解决的问题_java代码规范问题及解决方案
  10. SparkStreaming安全消费Kafka数据
  11. 光环大数据python爬虫
  12. Matlab基于蚁群算法求解多旅行商MTSP问题
  13. 阿里云账号注册流程方法(图文教程)
  14. 量化投资 — 移动平均及双均线策略
  15. 有道难题2010有道谜题标准答案
  16. Python通过图片识别实现连续点击
  17. 智慧路灯建设:智能路灯管理系统对智慧城市的重要性
  18. 投资组合模型|马科维兹、有效前沿、mean-CVaR
  19. 收割大厂offer需要具备的条件
  20. Bootstrap4知识(1)

热门文章

  1. Could not find a version that satisfies the requirement PyQt5-Qt5>=5.15.2 (from pyqt5) (from version
  2. MAC常用java开发软件
  3. Linux系统安装与使用基础实验报告
  4. 好用用的linux 监控命令
  5. JspStudy套件部署j2ee maven项目网址问题
  6. 《嵌入式 – GD32开发实战指南》第1章 开发环境搭建
  7. 2023年南京师范大学资源与环境考研上岸前辈备考经验指导
  8. centerOS环境变量配置
  9. Linux入门的基础知识点
  10. 软件测试--IEEE829标准