- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据第二章
在静态链表尾追加新结点 int Append ( SLinkList SL, ListData x ) { if ( SL.newptr == -1 ) return 0; //追加失败 int q = SL.newptr; //分配结点 SL.newptr = SL.Nodes[SL.newptr].link; SL.Nodes[q].data = x; SL.Nodes[q].link = NULL; int p = 0; //查找表尾 while ( SL.Nodes[p].link != -1 ) p = SL.Nodes[p].link; SL.Nodes[p].link = q; //追加 return 1; } 在静态链表中查找第i个元素 int Locate ( SLinkList SL, int i ) { if ( i 0 ) return -1; //参数不合理 int j = 0, p = SL.Nodes[0].link; while ( p != -1 j i ) { //循链查找第 i 号结点 p = SL.Nodes[p].link; j++; } if ( i == 0 ) return 0; return p; } 释放第i个结点 int Remove ( SLinkList SL, int i ) { int p = Locate ( SL, i-1 ); if ( p == -1 ) return 0; //找不到结点 int q = SL.Nodes[p].link; //第 i 号结点 SL.Nodes[p].link = SL.Nodes[q].link; SL.Nodes[q].link = SL.newptr; //释放 SL.newptr = q; return 1; } 2.3.2循环链表 循环链表是单链表的变形。 循环链表最后一个结点的 link 指针不为NULL,而是指向了表的前端。 为简化操作,在循环链表中往往加入头结点。 循环链表的特点是:只要知道表中某一结点的地址,就可搜寻到所有其他结点的地址。 循环链表示例 带头结点的循环链表 a1 a2 a3 an H an H a2 a1 H (空表) (非空表) 循环链表的搜索算法 first 31 48 15 57 搜索15 ? ? ? current current current first 31 48 15 57 搜索25 ? ? ? current current current current ? current 思考整个搜索算法的条件是? 循环链表中尾指针的应用 考虑如何实现将带有尾指针的两个循环论链表合并为一个? an A a2 a1 an a2 a1 B 带尾指针的循环链表 rear 31 48 15 57 22 如果插入与删除仅在链表的两端发生,可采用带表尾指针的循环链表结构。 在表尾插入,时间复杂性 O(1) 在表尾删除,时间复杂性 O(n) 在表头插入,相当于在表尾插入 在表头删除,时间复杂性 O(1) 2.3.3双向链表 双向链表是指在前驱和后继方向都能游历(遍历)的线性链表。 双向链表每个结点有两个指针域, 结构如下: 双向链表通常采用带头结点的循环链表形式。 前驱方向 ? ? 后继方向 prior data next 双向链表的C语言定义 typedef struct DuLNode { ElemType data; struct DuLNode *prior,*next; } DuLNode ,*DuLinkList; prior data next 空双向循环链表: 非空双向循环链表: L L A B 结点指向 p-prior-next == p == p-next-prior p-prior p-next p prior next 双向链表中插入操作 s=(DuLNode *)malloc(sizeo
您可能关注的文档
最近下载
- 国家开放大学2024年《资本经营-重庆》形考任务1-4参考答案.docx VIP
- 河北大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- T CAME 30-2021 复合手术室建设标准.docx VIP
- 控制电缆绝缘测试记录表.docx VIP
- 电化学储能电站并网运行验收全套表格.pdf VIP
- 内地新疆高中班学生转学、休学审核表.pdf VIP
- GBT 18015.1-2017 数字通信用对绞或星绞多芯对称电缆 第1部分:总规范.pdf
- TJAASS 151-2024 水稻碳足迹评价方法.pdf VIP
- 新解读《GB_T 18015.1-2017数字通信用对绞或星绞多芯对称电缆 第1部分:总规范》最新解读.docx VIP
- 2022年苏州大学计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
原创力文档


文档评论(0)