南昌大学数据结构实验程序 联系客服

发布时间 : 星期日 文章南昌大学数据结构实验程序更新完毕开始阅读6ac0e95e844769eae009ed63

4) 求链表的长度,并输出表长。 #include #include #include /*定义*/

typedef struct node { int data;

struct node *next; }LNODE,*linkedlist;

/*建立表*/

linkedlist listbuild( ) { int x;

LNODE *L,*p,*q;

L=(LNODE*)malloc(sizeof(LNODE)); L->next=NULL; scanf(\while (x!=0)

{p=(LNODE*)malloc(sizeof(LNODE)); p->data=x;

p->next=L->next; L->next=p;

scanf(\return(L);

}

/*初始化链表*/ linkedlist listinit() { linkedlist L;

L=(LNODE *)malloc(sizeof(LNODE)); if(L==NULL)

{ printf(\exit(0);}

L->next=NULL; return L;}

/*第i个结点插入元素*/

void listins(linkedlist L, int i, int x) { linkedlist p,s;int j; p=L;j=0;

while(p && jnext;j++;} if(!p||j>i)

{printf(\

s=(LNODE *)malloc (sizeof(LNODE)); s->data=x;

s->next=p->next; p->next=s; }

/*删除链表元素*/

void listdel(linkedlist L, int i) {

linkedlist p,q; int j; p=L;j=0;

while(p->next && jnext;j++;}

if(p->next==NULL||j>i)

{printf(\q=p->next;

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

/*求链表表长*/

int listlen(linkedlist L)

{ linkedlist p; int j; p=L->next; j=0; while(p)

{ j++;p=p->next;} return j; }

/*输出链表*/

void listprint(linkedlist L) {

linkedlist p; p=L->next;

while(p!=NULL)

{ printf(\ p=p->next; } }

main() { int k;

linkedlist La; La=listbuild(); k= listlen(La);

printf(\链表的长度=%d\\n\listprint(La); }