计算机软件技术基础上机编程
上机题一:线性表
1. 建立单向链表;表长任意;
2. 可交互输出单链表中的内容;
3. 编写算法计算出自己所建单链表的长度并输出;
4. 输出自己所建立单链表中的第 K 结点,并将剩余结点输
出;
5. 将单链表倒排并输出结果
#include
#include
typedef int datatype;
typedef struct node
{ datatype data;
struct node *next;
}linklist;
linklist*Creatlist() //建立
链表//
{ int x;
linklist *h, *s;
h=NULL;
1
printf("\n please input the date end with 0:\n");
printf("\n Input data:");
scanf("%d",&x);
while(x!=0)
{ s=malloc(sizeof(linklist));
s->data=x;
s->next=h;
h=s;
printf("\n Input data:");
scanf("%d",&x);
}
return h;
}
void Putlist(linklist *h) //输出单
链表中的内容//
{ linklist *s;
s=h;
while(s!=NULL)
{ printf("%4d",s->data);
s=s->next;
2
}
}
int Long(linklist *h) //计
算链表的长度//
{ int i=0;
linklist *s;
s=h;
while(s!=NULL)
{ i++;
s=s->next;
}
return(i);
}
void Delete(linklist *h,int k) //删除链
表中第 k 结点//
{ int i=0;
linklist *p1,*p2;
p1=h;
if(k==1) { h=h->next;free(p1);}
else
3
{
while(i
{