发布时间 : 星期日 文章南昌大学数据结构实验程序更新完毕开始阅读6ac0e95e844769eae009ed63
4) 求链表的长度,并输出表长。 #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 && j
{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 && 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); }