《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc

《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc

ID:58488845

大小:883.00 KB

页数:51页

时间:2020-05-17

《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc_第1页
《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc_第2页
《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc_第3页
《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc_第4页
《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc_第5页
资源描述:

《《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、*******大学《数据结构与算法分析》课程设计题目:数据结构上机试题学生姓名:学号:专业:信息管理与信息系统班级:指导教师:2014年04月目录一、顺序表的操作2【插入操作原理】2【删除操作原理】2【NO.1代码】3【运行截图演示】7二、单链表的操作10【创建操作原理】10【插入操作原理】10【删除操作原理】10【NO.2代码】11【运行截图演示】20三、顺序栈的操作25【数值转换原理】25【NO.3代码】26【运行截图演示】30四、查找算法32【顺序查找原理】32【折半查找原理】32【NO.4代码】33【运行截图演示】38五、排序算法40【直接插入排序原理】40【快速

2、排序原理】40【NO.5代码】41【运行截图演示】46一、顺序表的操作(1)插入元素操作:将新元素x插入到顺序表a中第i个位置;(2)删除元素操作:删除顺序表a中第i个元素。【插入操作原理】线性表的插入操作是指在线性表的第i-1个数据元素和第i个数据元素之间插入一个新的数据元素,就是要是长度为n的线性表:变成长度为n+1的线性表:数据元素和之间的逻辑关系发生了变化。(其【插入原理】在课本P23的算法2.3有解释)【删除操作原理】反之,线性表的删除操作是使长度为n的线性表:变成长度为n-1的线性表:数据元素、和之间的逻辑关系发生变化,为了在存储结构上放映这个变化,同样需要移

3、动元素。(其【删除原理】在课本P24的算法2.4有解释)【NO.1代码】#include#defineMAX100typedefintdatatype;typedefstruct{datatypedata[MAX];intlist;}sequenlist;/*顺序表*/intmain(){intinsert(sequenlist*L,intx,inti);intdeletee(sequenlist*L,inti);intinput(sequenlist*L);intoutput(sequenlist*L);sequenlists,*p=&s;intind

4、ata,inlocate,deletedx;input(p);printf("请输入要插入的数:");scanf("%d",&indata);printf("请输入要插入的位置:");scanf("%d",&inlocate);insert(p,indata,inlocate);printf("插入后的数据:");output(p);printf("请输入要删除的位置:");scanf("%d",&deletedx);deletee(p,deletedx);printf("删除后的数据:");output(p);return0;}intoutput(sequenlist*

5、L){inti;for(i=0;i<=L->list;i++)printf("%d",L->data[i]);printf("");return(1);}intinput(sequenlist*L){inti;printf("请输入原始数据个数:");scanf("%d",&(L->list));L->list--;printf("请输入原始数据:");for(i=0;i<=L->list;i++)scanf("%d",&(L->data[i]));printf("原始数据为:");output(L);return(1);}intinsert(sequenlist

6、*L,intx,inti){intj;if(((*L).list)>=MAX-1){printf("overflow");return0;}else{if((i<1)

7、

8、(i>((*L).list)+1)){printf("error");return0;}else{for(j=L->list;j>=i-1;j--)L->data[j+1]=L->data[j];L->data[i-1]=x;L->list++;}}return(1);}intdeletee(sequenlist*L,inti)/*定义删除函数*/{intj;if((i<1)

9、

10、(i>(L->list

11、)+1)){printf("error");return0;}else{for(j=i;j<=L->list;j++)L->data[j-1]=L->data[j];L->list--;}return(1);}【运行截图演示】①、如下面的运行截图所示,当输入的线性表长度设置为12的时候,该线性表最多能输入12位数的长度。输入要插入的数和插入数的位置下标,便可以进行插入操作;同理当输入要执行删除操作数的位置下标,可以将该数删除出线性表。②、如下面的运行截图所示,当初始设置的线性表长度为5的时候,其5个数分别是-3、4、5、0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。