第十一讲 链表.pptVIP

  • 7
  • 0
  • 约1.34千字
  • 约 26页
  • 2018-04-18 发布于河南
  • 举报
第十一讲 链表

用结构体指针处理链表 一、链表概述 链表是一种最常见的数据结构,它动态地进行存储分配。 数组:必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)。 链表有单向链表、双向链表、环形链表等形式。以单向链表为例、 链表有一个“头指针”head,它指向链表的第一个元素。 链表的一个元素称为一个“结点”(node)。结点中包含两部分内容,第一部分是结点数据本身,如图中的A、B、C、D所示。结点的第二部分是一个指针,它指向下一个结点。 最后一个结点称为“表尾”,表尾结点的指针为空(NULL)。 在链表中插入一个结点,比如,在结点A后插入结点P,只需使P指向B,使A指向P。 在链表中删除一个结点,比如删除结点C,只需使B指向D,并删除结点C所占内存。 因此,链表的插入、删除非常方便。 链表结点数据可以用结构体来描述,例如、      struct student      {       int  num;       float score; /* 指向下一结点 */       struct student *next;      } ; 链表需要动态地进行存储分配,

文档评论(0)

1亿VIP精品文档

相关文档