1 / 17
文档名称:

软件基础实验报告.doc

格式:doc   大小:240KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件基础实验报告.doc

上传人:文库旗舰店 2019/5/21 文件大小:240 KB

下载得到文件列表

软件基础实验报告.doc

文档介绍

文档介绍:计算机软件技术基础实验报告姓名:XXX班级:XX0X01学号:30X05050XX实验一线性表:1、建立单向链表,表长任意;2、可交互输出单链表中的内容;3、编写算法计算出自己所建单链表的长度并输出;4、删除自己所建单链表中的第K个结点,并将剩余结点输出;5、将单链表倒排,输出结果。源程序如下:#include<>#include<>typedefintdatatype;typedefstructnode//链表结构体//{datatypedata;structnode*next;}linklist;linklist*creatlist()//建立链表//{intx;linklist*head,*s;head=NULL;printf("\n输入链表数据:");scanf("%d",&x);while(x!=0){s=malloc(sizeof(linklist));//为链表开辟一系列的空间//s->data=x;s->next=head;head=s;printf("\n输入链表数据:");scanf("%d",&x);}returnhead;}voidlistContent(linklist*h)//输出链表内容//{linklist*s;s=h;while(s!=NULL){printf("%4d",s->data);s=s->next;}}intlistLong(linklist*h)//计算链表长度//{inti=0;linklist*s;s=h;while(s!=NULL){i++;s=s->next;}return(i);}voidDeleteNode(linklist*h,intk)//删除第K个节点//{inti=0;linklist*p,*q;p=h;if(k==1){h=h->next;free(p);}else{while(i<k-1&&p!=NULL){i++;q=p;p=p->next;}q->next=p->next;free(p);}}linklist*DaoXu(linklist*h)//逆序排列链表//{linklist*r,*q,*p;r=h;p=r->next;q=p->next;if(h==NULL)printf("链表为空\n");while(q!=NULL&&h!=NULL){p->next=r;r=p;p=q;q=q->next;}h->next=NULL;p->next=r;return(p);}main(){intk,x;linklist*h;do{printf("\n功能:\n");printf("\n");printf(";\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("请输入功能号:\n");scanf("%d",&x);if(x<1||x>6)printf("错误!\n");elseswitch(x){case1:h=creatlist();break;case2:listLong(h);break;case3:printf("链表的长度是:%d",listLong(h));break;case4:printf("请输入要删除的节点:\n"); scanf("%d",&k); DeleteNode(h,k);listContent(h);break;case5:h=DaoXu(h);listContent(h);break;case6:exit(0);break;}}while(1);}运行结果:实验总结:,对于循环的计数的控制没有搞好,以致无法得到想要的链表;,否则会出错。解决办法:,调整循环次数,来使循环中的个参数达到自己想要的通过查阅资料,完成对链表程序的实现。在写每一个子函数时,常常会遗漏小的判断条件,比如遗漏了判断是否为空等;还有就是在对指针操作时,有时多加了*,或者分号写成逗号;在调试程序的过程中有很多小的错误或者判断条件错误等。实验二在交互方式完成下列任务:1、动态交互建立二叉树,结点个数任意;2、分别用DLR、LDR、LRD三种方式对二叉树进行便利并输出结果;3、计算二叉树中的结点个数并输出;4、计算二叉树的深度并输出;源程序如下:#include""#include""structBTNode{intdata; structBTNode*Lchild,*Rchild;};structBTNode*build(structBTNode*p);s