线性表的建立
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sqlist la,lb,lc;
/*建立一个空表 */
sqlist initlist()
{
sqlist l;
=(int*)malloc(listinitsize*sizeof(int)); if(!
exit(OVERFLOW);
=0;
=listinitsize;
return l;
}
sqlist creatlist(sqlist l,int num)
} 5 总结 第一次数据结构实验结束了, 在这次的上机实验中不仅检验了我所学习的知识, 也培养 了我如何去把握一件事情, 如何去做一件事情, 又如何完成一件事情的方法 和技巧。 在设计 过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷 幄,学会了宽容,学会 了理解,也学会了做人与处世,这次实验对我来说受益良多。 上 机实验是我们专业课程知 识综合应用的实践训练,是我们迈向社会,从事职业工作前 一个必不少的过程. “千里之行 始于足下” ,通过这次上机,我深深体会到这句千古 名言的真正含义。通过这次实验,巩固 和加深了我对数据结构的理解,提高综合运用 本课程所学知识的能力; 、培养了我选用参考 书,查阅手册及文献资料的能力。培 养独立思考,深入研究,分析问题、解决问题的能力; 根据我在实习中遇到得问题,我 将在以后的学习过程中注意以下几点: 1、认真上好专业实验课,多在实践中锻炼自己。 2、写程序的过程中要考虑周到,严密。 3、在做设计的时候要有信心,有耐心,切勿浮躁。 4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。 6 源程序清单结果 六、测试结果 运行得到的结果如下图所示: 七、附录:源程序 #include #include #define listinitsize 100 #define OVERFLOW -1 /*线性表的定义 */ typedef struct sqlist { int *a; int length; int listsize; }sqlist ;
线性表的建立
单链表的建立 姓名:丁涛 学号:4 班级:1104103 1 规格说明和需求分析 链表的初始化、链表的创建(头部插入法、尾部插入法) 、 求表长、查找(按值 查找、按序号查找) 、输出、两个有序 单链表的合并等 编程实现建立单链表的操作 编程实现单链表的排序 编程实现单链表合并有序表,使得合并结果有序,但是要求不额 外增加内存空 间存放合并后的数据,时间开销尽量少 2 详细设计 根据概要设计流程图,需要实现如下功能: 建立带头结点的单链表;判断单链表是否有序;单链表排序;合并有 序表使其仍 然有序; 打印输出单链表的所有数据。 下面对这些功能进 行详细设计 a). 建立带头结点的单链表; b). 判断单链表是否有序; 输入:带头结点的单链表 输出:单链表有序,返回 1;单链表无序,返回 0 算法思想描述:从第二个元素结点开始,与直接前趋比较,如果比直 接前趋结点元素值小, 则返回无序 (0) ; 否则, 访问下一个元素结点。 如果直到 单链表访问结束, 所有元素都大于等于直接前趋, 则该单链 表是有序表,返回真 (1) 。算法详细设计流程图见图所示。 四、调试分析 ⒈ 刚开始输入时,漏掉了一些变量参数的标记 ⒉ 在初次编好后,每次运行时发现第一次输入的数据必须要多了,导致线性表有 点混乱, 最后发现是输入语句都多了一个“ \n”所导致的,删除后就正常了。 3. 程序采用逐个输入的方法创建 La,Lb, 在元素较多时,会使得程序很庞大,不利 于检查错 误等。 4. 算法的时空分析
for(i=1;i<=;i++) printf(
}
/*删除线性表中的相同的元素 */ sqlist delsame(sqlist L) {
int i,j,k;
if>0)
{
j=0;
for(i=1;i
相关文档:
• • • • • • • • • •
更多相关文档请访问:
{
int j;
int p;
for(j=1;j<=num;j++)
{
scanf(
[j]=p;
++;
}
}
/*合并两线性表 */
sqlist addlist( sqlist la, sqlist lb, sqlist lc) {
int i=1,j=1,k=1;
while(i<= && j<=
{ຫໍສະໝຸດ Baidu
if[i]<=[j])
各操作的算法时间复杂度比较合理 initlist 为 O(1)printList,delsame,change,creatlist 为 O, addList 为 O*。 5. 本次实验采用数据抽象的程序设计方法,将程序化为三层次结构,设计时思路 清晰,使 调试也较顺利,各模块有较好的可重用性。 五、用户手册 ⒈ 本程序的运行环境为 windows xp 操作系统,并且在 中运行,执行文件为 ; ⒉ 进入演示程序后,完成编译,连接(即同时按下 Ctrl F9)进入演示界面,用户键 入任 一符号,都能看完整个演示过程。 /*建立一个空表 */ sqlist initlist() { sqlist l; =(int *)malloc(listinitsize*sizeof (int )); if (! return (OVERFLOW); =0; =listinitsize; return l; } sqlist creatlist(sqlist l,int num) { int j; int p; for (j=1;j<=num;j++) { scanf( [j]=p; ++; } }
{
[k]=[i];
i++;
k++;
}
else
{
[k]=[j];
j++;
k++;
}
}
while(i<=
{
[k]=[i];
k++;
i++;
}
while(j<=
{
[k]=[j];
k++;
j++;
}
=k-1;
return lc;
}
/*打印线性表 */
void printlist(sqlist l) {
int i=1;