好文档 - 专业文书写作范文服务资料分享网站

软件基础实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

计算机软件技术基础

实验报告

姓名:XXX

班级:XX 0X01 学号:30X05050XX

实验一

线性表:

1、建立单向链表,表长任意; 2、可交互输出单链表中的内容;

3、编写算法计算出自己所建单链表的长度并输出;

4、删除自己所建单链表中的第K个结点,并将剩余结点输出; 5、将单链表倒排,输出结果。 源程序如下:

#include #include typedef int datatype;

typedef struct node //链表结构体// {

datatype data; struct node *next; }linklist;

linklist *creatlist() //建立链表// {

1

int x;

linklist *head, *s; head=NULL;

printf(\输入链表数据:\ scanf(\ while(x!=0) {

s=malloc(sizeof(linklist)); //为链表开辟一系列的空间// s->data=x; s->next=head; head=s;

printf(\输入链表数据:\ scanf(\ }

return head; }

void listContent(linklist *h) //输出链表内容// {

linklist *s; s=h;

while(s!=NULL) {

printf(\ s=s->next; } }

int listLong(linklist *h) //计算链表长度// {

int i=0; linklist *s; s=h;

while(s!=NULL) {

i++;

s=s->next; }

return(i); }

void DeleteNode(linklist *h,int k) //删除第K个节点// {

int i=0;

linklist *p,*q; p=h; if(k==1)

2

{

h=h->next; free(p); }

else {

while(i

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() {

int k,x; linklist *h; do {

printf(\功能:\\n\ printf(\建立链表\\n\

printf(\输出链表内容;\\n\

3

printf(\获得链表长度\\n\ printf(\删除第K个节点\\n\ printf(\将链表倒序输出\\n\ printf(\退出\\n\

printf(\请输入功能号:\\n\ scanf(\ if(x<1||x>6)

printf(\错误!\\n\

else

switch(x) {

case 1:h=creatlist();break;

case 2:listLong(h);break;

case 3:printf(\链表的长度是: %d\ case 4:printf(\请输入要删除的节点:\\n\ scanf(\ DeleteNode(h,k);

listContent(h);break;

case 5:h=DaoXu(h);

listContent(h);break;

case 6:exit(0);break; } }

while(1); }

运行结果:

4

实验总结:1.在编写倒排链表的程序时,对于循环的计数的控制没有搞好,以致无法得到想要的链表;2.要给一个指针创立空间之后才能调用它,否则会出错。

解决办法:1.通过单步调试程序,调整循环次数,来使循环中的个参数达到自己想要的通过查阅资料,完成对链表程序的实现。在写每一个子函数时,常常会遗漏小的判断条件,比如遗漏了判断是否为空等;还有就是在对指针操作时,有时多加了*,或者分号写成逗号;在调试程序的过程中有很多小的错误或者判断条件错误等。

实验二

在交互方式完成下列任务:

5

软件基础实验报告

计算机软件技术基础实验报告姓名:XXX班级:XX0X01学号:30X05050XX实验一线性表:1、建立单向链表,表长任意;2、可交互输出单链表中的内容;3、编写算法计算出自己所建单链表的长度并输出;4
推荐度:
点击下载文档文档为doc格式
9ma6g1jjx5371qz5d0ci05ej21u0yu00jyv
领取福利

微信扫码领取福利

微信扫码分享