资源描述:
《《数据结构与算法分析》课程设计:顺序表、单链表、顺序栈、查找、排序算法.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