下载此文档

数据结构 头插法和尾插法建立链表(各分有无头结点).doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
数据结构___头插法和尾插法建立链表(各分有无头结点)实验一链表的建立及基本操作方法实现 一、【实验目的】1、理解和掌握单链表的类型定义方法和结点生成方法。2、掌握利用头插法和尾插法建立单链表和显示单链表元素的算法。3、掌握单链表的查找(按序号)算法。4、掌握单链表的插入、删除算法。 二、【实验内容】1、利用头插法和尾插法建立一个无头结点单链表,并从屏幕显示单链表元素列表。2、利用头插法和尾插法建立一个有头结点单链表,并从屏幕显示单链表元素列表。3、将测试数据结果用截图的方式粘贴在程序代码后面。重点和难点:尾插法和头插法建立单链表的区别。建立带头结点和无头结点单链表的区别。带头结点和无头结点单链表元素显示方法的区别三、【算法思想】1)利用头插法和尾插法建立一个无头结点单链表 链表无头结点,则在创立链表时,初始化链表指针L=NULL。当用头插法插入元素时,首先要判断头指针是否为空,若为空,则直接将新结点赋给L,新结点next指向空,即L=p,p->next=NULL,若表中已经有元素了,则将新结点的next指向首结点,然后将新结点赋给L即(p->next=L,L=p)。当用尾插法插入元素时,首先设置一个尾指针tailPointer以便随时指向最后一个结点,初始化tailPointer和头指针一样即tailPointer=L。插入元素时,首先判断链表是否为空,若为空,则直接将新结点赋给L即L=p,若不为空,else将最后一个元素的next指向新结点即tailPointer->next=p,然后跳出这个if,else语句,将新结点next指向空,而且将tailPointer指向新结点即p->next=NULL,tailPointer=p。2)利用头插法和尾插法建立一个有头结点单链表 链表有头结点,则在创立链表时,初始化链表指针L->next=NULL。与无头结点区别在于,判断链表为空是根据L->next是否为空。 用头插法插入元素时,要判断链表是否为空,若为空则将新结点next指向空,作为表尾,若不为空,则直接插入,将新结点next指向头结点next的指向,再将头结点next指向新结点即p->next=L->next,L->next=p。 用尾插法插入元素时,首先也要设置一个尾指针tailPointer以便随时指向最后一个结点,初始化tailPointer=L,与无头结点区别就只是插入第一个元素时有区别。插入元素时,不需要判断链表是否为空,直接进行插入,代码tailPointer->next=p,p->next=NULL,tailPointer=p。3)带头结点和无头结点单链表元素显示方法的区别: 区别在于,显示时带头结点是从头结点next开始即p=L->next,而无头结点链表是直接从L开始即p=L。四、【源程序代码】1)利用头插法和尾插法建立一个无头结点单链表#include<>#include<>#include<>typedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;/*尾插法*/voidcreatListTailInsert(LinkList&L,intn){LinkListp,tailPointer;inti;//计数L=(LinkList)malloc(sizeof(LNode));

数据结构 头插法和尾插法建立链表(各分有无头结点) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人业精于勤
  • 文件大小80 KB
  • 时间2020-03-24