计算机软件技术基础上机编程
计算机软件技术基础上机编程
上机题一:线性表
1. 建立单向链表;表长任意; 2. 可交互输出单链表中的内容;
3. 编写算法计算出自己所建单链表的长度并输出;
4. 输出自己所建立单链表中的第K个结点,并将剩余结点输出;
5. 将单链表倒排并输出结果
#include
struct node *next; }linklist;
linklist*Creatlist() //建立链表// { int x;
linklist *h, *s; h=NULL;
printf(\ printf(\ scanf(\ while(x!=0)
{ s=malloc(sizeof(linklist)); s->data=x; s->next=h; h=s;
printf(\ scanf(\ }
return h; }
void Putlist(linklist *h) //输出单链表中的内容// { linklist *s; s=h;
2
while(s!=NULL)
{ printf(\ s=s->next; } }
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) { int i=0;
linklist *p1,*p2; p1=h;
if(k==1) { h=h->next;free(p1);} else {
while(i 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(\ is empty\\n\ while(q!=NULL&&h!=NULL) {p->next=r; r=p; p=q; q=q->next; } h->next=NULL; p->next=r; return(p); } //删除链表中第k个结点// //逆序输出链表// / /空表// //返回根结点// 3