- 12
- 0
- 约1.49千字
- 约 10页
- 2019-05-18 发布于广西
- 举报
单链表存储结构 typedef struct LNode{ ElemType data; struct Lnode *next; } 带头结点的单链表 有时我们在单链表的第一个节点之前附设一个结点,称之为头结点 假设p是指向线形表中第i个数据元素(结点ai )的指针,则指针p-next是指向第i+1个数据元素的指针 访问单链表的第i个元素 动画 status GetElem_L(LinkList L,int i,ElemType e){ p = L-next; j = 1; while(p ji){ p = p-next; ++j; } if(!p || ji) return ERROR; e = p-data; return OK; } 单链表的插入 动画1 动画2 status ListInsert_L(LinList L,int i,ElemType e){ p=L; j=0; while(p ji-1){ p=p-next; ++j; } if(!p || ji-1) return ERROR; s=(LinkList)malloc(sizeof(Lnode)); s-data=e; s-next=p-next; p-next=s; return OK; } 单链表的删除 动画 status ListDelete_L(LinList L,int i,ElemType e){ p = L; j = 0; while(p-next ji-1){ p = p-next; ++j; } if((!)p-next) || ji-1) return ERROR; q = p-next; p-next = q-next; e = q-data; free(q); return OK; } 单链表的建立(逆序) 动画 void Createlist_L(LinkList L,int n){ L=(LinkList) malloc (sizeof(LNode)); L-next = NULL; for(i=n;i0;--i){ p=(LinkList) malloc (sizeof(LNode)); scanf(p-data); p-next = L-next; L-next = p; } } * * 链式存储和顺序存储各自的优缺点: 结点:数据元素的存储映象,由数据域和指针域构成。 数据域 指针域 1。定义 单链表 线性表的链式表示及实现 存储地址 数据域 指针域 1 Li 43 7 Qian 13 13 Sun 1 19 Wang NULL 25 Wu 37 31 Zhao 7 37 Zheng 19 43 Zhou 25 31 头指针H 线性链表的逻辑状态 Li Zhao Qian Sun Zhou Wu Zheng Wang ^ H a1 an ^ a2 ... 头指针H 头结点 H ^ 非空表 空表
原创力文档

文档评论(0)