基本信息
文件名称:计算机软件技术基础上机编程.docx
文件大小:117.65 KB
总页数:23 页
更新时间:2025-06-25
总字数:约1.63万字
文档摘要

计算机软件技术基础上机编程

上机题一:线性表

建立单向链表;表长任意;

可交互输出单链表中得内容;

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

输出自己所建立单链表中得第K个结点,并将剩余结点输出;

将单链表倒排并输出结果

#includestdio、h

#include<malloc、h

typedefintdatatype;

typedefstructnode

{datatypedata;

structnode*next;

}linklist;

linklist*Creatlist()//建立链表//

{intx;

linklist*h,*s;

h=NULL;

printf("\npleaseinputthedateendwith0:\n);

printf(\nInputdata:);

scanf(%d,&x);

while(x!=0)

{s=malloc(sizeof(linklist));

s-data=x;

s-next=h;

h=s;

printf("\nInputdata:");

scanf(%d,x);

returnh;

voidPutlist(linklist*h)//输出单链表中得内容//

{linklist*s;

s=h;

while(s!=NULL)

{printf(%4d,s-data);

s=s->next;

}

intLong(linklist*h)//计算链表得长度//

{inti=0;

linklist*s;

s=h;

while(s!=NULL)

{i++;

s=s->next;

}

return(i);

}

voidDelete(linklist*h,intk)//删除链表中第k个结点//

{inti=0;

linklist*p1,*p2;

p1=h;

if(k==1){h=h-next;free(p1);}

else

{

while(ik-1&p1!=NULL)

{

i++;

p2=p1;

p1=p1-next;

}

p2->next=p1-next;

free(p1);

linklist*Nixu(linklist*h)//逆序输出链表//

{linklist*r,*q,*p;

r=h;

p=r->next;

q=p->next;

if(h==NULL)

printf("thelinklistisempty\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(\nqingshurumingling:\n);

printf(1、jianlilianbiao;\n);

printf("2、shuchulianbiaozhongdeneirong;\n");

printf(3、shuchulianbiaodechangdu;\n);

printf(4、shanchudiKgejiedian;\n);

printf(5、jianglianbiaodaoxubingshuchu;\n);

printf(6、tuichuchen