当前位置:首页 > 数据结构实验程序参考
while(p!=NULL)
{ n=n+1; p=p->next; } return(n); }
void print(LinkList head) { LinkList p; p=head->next; while(p!=NULL)
{ printf(\
p=p->next;
} printf(\ getch(); }
Insert_Linklist(LinkList *L, int i, int e) { LinkList head,p,s; int j; head=*L;
j=0; p=head; /* 指针初始化,j为计数器*/ while ((p->next!=NULL) && (j { p=p->next; j++;} /* 查找第i-1个结点,由p指向 */ if(!p->next) { printf(\ /* i<1或大于表长 */ else{ s=(LinkList)malloc(LEN); s->data=e; s->next=p->next; /* 生成新结点 */ p->next=s; /* 完成插入 */ return OK;} } Delete_Linklist(LinkList *L, int i, int *e) { LinkList p,q; int j; p=*L; j=0; while( p->next && j { printf(\ else { q=p->next; p->next=q->next; } /* ========menu ======== */ char menu(void) { char ch; clrscr(); printf(\ printf(\ printf(\ MENU \\n\ /*puts()*/ printf(\ ===========================\\n\ printf(\ Link-list operation\\n\ printf(\ 1. creat\\n\ *e=q->data; free(q); return OK; } printf(\ 2. insert\\n\ printf(\ 3. delete\\n\ printf(\ 4. print \\n\ printf(\ 5. getelement\\n\ printf(\ 6. length \\n\ printf(\ 7. reverse\\n\ printf(\ 8. delete all same node\\n\ printf(\ 0. exit \\n\ printf(\ ===========================\\n\ printf(\ Choice(0,1,2,3,4,5,6,7,8):\ ch=getchar(); return(ch); } /*void reverse(LinkList *L) { LinkList p,q,r; p=(*L)->next; if(p) { q=p->next; p->next=NULL; while(q) { r=q->next; q->next=p; p=q;q=r; } (*L)->next=p; } }*/ void reverse(LinkList *L) { LinkList p,q; p=(*L)->next; (*L)->next=NULL; while(p) { q=p;p=p->next; q->next=(*L)->next; (*L)->next=q; } } void del_same(LinkList *L) { LinkList p,q,pre; p=(*L)->next; while(p) { pre=p; q=p->next; while(q) { if(q->data==p->data) { pre->next=q->next; free(q); q=pre->next; }
共分享92篇相关文档