数据结构实验——基于数组表的实验
来源:互联网 发布:申请淘宝店铺号步骤 编辑:程序博客网 时间:2024/06/08 20:17
实验内容
1.编写程序实现顺序表的下列基本操作: (1) 初始化顺序表La。 (2) 在顺序表中插入元素形成表[ 10 20 30 40 50],并输出表。 (3) 删除表中第3个元素,并输出表 (4) 删除元素40,并输出表 (5)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。 (6)打印输出La中的元素值。2.编写程序完成下面的操作: (1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。 (2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。
定义结构体
typedef struct { int data[maxSize];//表的数据 int length;//表的长度,从1开始}seqlist;
声明所需函数
// 通过索引将数据插入到指定位置void insertContentByIndex (seqlist *list,int content,int index);// 在表尾插入数据,类似于堆栈的push方法void insertContent (seqlist *list,int content);// 通过索引删除表中的数据void deleteByIndex (seqlist *list,int index);// 通过内容删除表中的数据void deleteByContent (seqlist *list,int content);// 找出表中第一次出现content的索引int findFirstContentToIndex (seqlist *list,int content);// 打印表的数据datavoid printList (seqlist *list);
主函数实现指定功能
int main (){ seqlist La; La.length = 0; // 在顺序表中插入元素形成表[ 10 20 30 40 50],并输出表。 insertContent(&La , 10); insertContent(&La , 20); insertContent(&La , 30); insertContent(&La , 40); insertContent(&La , 40); insertContent(&La , 50); printList(&La); // 删除表中第3个元素,并输出表 deleteByIndex(&La , 3); printList(&La); // 删除元素40,并输出表 deleteByContent(&La , 50); printList(&La); insertContentByIndex(&La , 80 , 3); printList(&La); /*在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。*/ findFirstContentToIndex(&La , 50); return 0;}
程序源代码
// 基于数组的表实验#include <stdio.h>#define maxSize 10typedef struct { int data[maxSize]; int length;}seqlist;void insertContentByIndex (seqlist *list,int content,int index);void insertContent (seqlist *list,int content);void deleteByIndex (seqlist *list,int index);void deleteByContent (seqlist *list,int content);int findFirstContentToIndex (seqlist *list,int content);void printList (seqlist *list);int main (){ seqlist La; La.length = 0; insertContent(&La , 10); insertContent(&La , 20); insertContent(&La , 30); insertContent(&La , 40); insertContent(&La , 40); insertContent(&La , 50); printList(&La); deleteByIndex(&La , 3); printList(&La); deleteByContent(&La , 50); printList(&La); insertContentByIndex(&La , 80 , 3); printList(&La); findFirstContentToIndex(&La , 50); return 0;}void insertContentByIndex (seqlist *list,int content,int index){ if (index > maxSize && list->length >= maxSize) { printf("超出表的限定范围\n"); return; } int i = list->length; for ( ;i >= index; i--) { list->data[i] = list->data[i-1]; } list->data[index-1] = content; list->length ++; printf("数据%d 插入在%d 成功\n",content,index);}void insertContent (seqlist *list,int content){ if(list->length >= maxSize) { printf("表已经满了,无法插入新数据\n"); return; } list->data[list->length] = content; list->length ++; printf("数据%d\tpush成功\n",content);}void deleteByIndex (seqlist *list,int index){ int i = index - 1 ; int content = list->data[index-1]; for (; i < list->length - 1; i++) { list->data[i] = list->data[i+1]; } list->length --; printf("数据%d删除成功\n",content);}void deleteByContent (seqlist *list,int content){ int i = 0; while(i<list->length) { if (list->data[i] == content){ deleteByIndex(list,i+1); }else{ i++; } } /*表发生相应改变,无法进行后续的删除 for (i=0 ; i<list->length ; i++) { if (list->data[i] == content) { deleteContent(list,i+1); // 删除第一个后,表发生了改变,无法删除第二个相同的元素 } } */}int findFirstContentToIndex (seqlist *list,int content){ int i; for (i=0 ; i<list->length ; i++) { if (list->data[i] == content) { printf("该数据第一次出现在表中第%d个位置\n",i+1); return i+1; } } printf("没有找到该数据%d\n",content); return 0;}void printList(seqlist *list){ int i; printf("表内容为:\t"); for (i = 0; i < list->length; i++) { printf("%d\t",list->data[i]); } printf("\n");}
运行结果
1 0
- 数据结构实验——基于数组表的实验
- 数据结构实验——基于数组的栈基本操作
- 实验二 数据结构——线性表的实验
- 《数据结构》实验二:线性表的实验
- 《数据结构》实验二 线性表的实验
- 《数据结构》实验二:线性表的实验
- 数据结构实验二 :线性表的实验
- 《数据结构》实验二 线性表的实验
- 《数据结构》实验二:线性表的实验
- 《数据结构》实验二:线性表的实验
- 数据结构实验二 :线性表的实验
- 数据结构实验二:线性表的实验
- 【数据结构实验四】数组
- 【实验报告】数据结构实验二:线性表的实验
- 《数据结构》实验二:线性表的实验(实验报告)
- 数据结构实验——二叉树实验
- 数据结构实验——串的加密
- 实验:C++实验5—数组分离
- postgis初探
- 数据库<7>
- 服务器上安装tmux
- RequireJs初步了解和使用
- createDirectStream 实现offset管理
- 数据结构实验——基于数组表的实验
- Android 关于七牛的上传图片遇到的问题
- 87.ajax提交 后台返回中文乱码问题
- 欢迎使用CSDN-markdown编辑器
- POJ 3984 迷宫问题(记录路径的搜索)
- error:crosses initialization of ...的解决办法
- Python基础入门(十六)-迭代
- 6年java工程师心路分享-欢迎交流
- 使用Redis存储Nginx+Tomcat负载均衡集群的Session