- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (2)按值查找 Locate_LinkList(L,x) Linklist Locate_LinkList( LinkList L, elemtype x) /*在带头结点的单链表L中查找值为x的结点,找到后返回其指针,否则返回空*/ { p=L-next; while ( p!=NULL p-data != x) p=p-next; return p; } 3.插入 (1)后插结点:设p指向单链表中某结点,s指向待插入的值为x的新结点,将*s插入到*p的后面,插入示意图如右图。 操作如下: ①s-next=p-next; ②p-next=s; 注意:两个指针的操作顺序不能交换。 在*p之后插入*s p s × ① ② (2)前插结点:设p指向链表中某结点,s指向待插入的值为x的新结点,将*s插入到*p的前面,插入示意图如图。 首先要找到*p的前驱*q 然后再完成在*q之后插入*s: s-next=q-next; q-next=s; 图 在*p之前插入*s s × p q { Lnode * p,*s; p=Get_LinkList(L,i-1); /*查找第i-1个结点*/ if (p==NULL) { printf("参数i错");return 0; } /*第i-1个不存在不能插入*/ else { s=malloc(sizeof(LNode)); /*申请、填装结点*/ s-data=x; s-next=p-next; /*新结点插入在第i-1个结点的后面*/ p-next=s return 1; } (3)插入运算 Insert_LinkList(L,i,x) int Insert_LinkList( LinkList L, int i, datatype x) /*在单链表L的第i个位置上插入值为x的元素*/ 4. 删除 (1)删除结点:设p指向单链表中某结点,删除*p。 首先要找到*p的前驱结点*q, 然后完成指针的操作即可: q-next=p-next; free(p); 图2.15 删除*p p q × (2)删除运算:Del_LinkList(L,i) int Del_LinkList(LinkList L,int i) /*删除单链表L上的第i个数据结点*/ { LinkList p,s; p=Get_LinkList(L,i-1); /*查找第i-1个结点*/ if (p==NULL) { printf("第i-1个结点不存在");return -1; } else { if (p-next==NULL) { printf("第i个结点不存在");return 0; } else { s=p-next; /*s指向第i个结点*/ p-next=s-next; /*从链表中删除*/ free(s); /*释放*s */ return 1; } } 2.3.3 循环链表 带头结点的单循环链表 (a)非空表 a1 H an … (b)空表 H 单循环链表的连接操作示例: p= R1 –next; /*保存R1 的头结点指针*/ R1-next=R2-next-next; /*头尾连接*/ free(R2-next); /*释放第二个表的头结点*/ R2-next=p; /*组成循环链表*/。 两个用尾指针标识的单循环链表的连接 R2 b1 bn … × a1 an … R1 × p 2.3.4 双向链表 双向链表结点的定义: typedef struct dlnode { ElemType data; struct dlnode *prior,*next; }DLNode,*DLinkList; prior next data 结构特点: 设p指向双向循环链表中的某一结点,即 p中是该结点的指针,则 p-prior-next = p = p-next-pri
您可能关注的文档
最近下载
- 儿童发育性协调障碍的筛查、评估和诊断指南(2025)解读(2)(1)PPT课件.pptx VIP
- 苏州工业职业技术学院汽车工程系专业教师招聘简章.pdf VIP
- 新生儿牛奶蛋白过敏诊断与管理专家共识(2023).pptx VIP
- 社会需求导向下大学专业设置的变革与创新研究.docx VIP
- 儿童发育性协调障碍的筛查、评估和诊断指南(2025)解读(2)(2)PPT课件.pptx VIP
- 儿童发育性协调障碍的筛查、评估和诊断指南(2025).pptx VIP
- GB-6067.5-2014-起重机械安全规程-第5部分-桥式和门式起重机.pdf VIP
- 儿童发育性协调障碍的筛查、评估和诊断指南解读PPT课件.pptx VIP
- 消防站建设项目可行性研究报告.docx
- 儿童发育性协调障碍的筛查、评估和诊断指南解读PPT课件.pptx VIP
原创力文档


文档评论(0)