《数据结构 单链表基本操作代码.docx》由会员分享,可在线阅读,更多相关《数据结构 单链表基本操作代码.docx(2页珍藏版)》请在三一办公上搜索。
1、数据结构 单链表基本操作代码实验一 单链表 #include stdio.h #include stdlib.h typedef int ElemType; typedef struct LNode ElemType data; struct LNode *next; LNode,*LinkList; void creatLNode(LinkList &head) int i,n; LNode *p; head=(LNode*)malloc(sizeof(LNode); head-next=NULL; printf(请输入链表的元素个数:); scanf(%d,&n); for(i=n;i0;
2、i-) p=(LNode*)malloc(sizeof(LNode); printf(第%d个元素:,i); scanf(%d,&p-data); p-next=head-next; head-next=p; void InsertLNode(LinkList &L) LNode *p=L; int i,j=0,e; printf(请输入你要插入的位置:); scanf(%d,&i); printf(请输入你要插入的元素:); scanf(%d,&e); while (p-next&jnext; +j; LNode *s; s=(LNode*)malloc(sizeof(LNode); s-d
3、ata=e; s-next=p-next; p-next=s; int DeleteLNode(LinkList &L,int i,int &e) LNode *p; p=L; LNode *q; int j=0; while (p-next&jnext; +j; if(!(p-next)|ji-1) printf(删除位置不合理!n); return 0; q=p-next; p-next=q-next; e=q-data; free(q); return e; void DeleteCF(LinkList &L) LNode *p,*s,*r; p=L-next; while(p!=NUL
4、L) r=p; s=r-next; while(s!=NULL) if(p-data=s-data) r-next=s-next; s=s-next; else r=r-next; s=s-next; p=p-next; void display(LinkList &L) LNode *p; p=L-next; while(p!=NULL) printf(%d ,p-data); p=p-next; printf(n); void main printf(线性链表的基本操作!n); LinkList L; creatLNode(L); printf(初始链表为:); display(L); InsertLNode(L); printf(插入元素后的链表为:); display(L); int e=0; e=DeleteLNode(L,2,e); /删除链表中的第二个元素 printf(删除元素后的链表为:); display(L); printf(你删除的元素为:%dn,e); printf(nnn); printf(单链表重复元素的删除!n); LinkList L1; creatLNode(L1); printf(初始链表为:); display(L1); DeleteCF(L1); printf(删除重复元素后为:); display(L1);