Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2696890
  • 博文数量: 877
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5921
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-05 12:25
个人简介

技术的乐趣在于分享,欢迎多多交流,多多沟通。

文章分类

全部博文(877)

文章存档

2021年(2)

2016年(20)

2015年(471)

2014年(358)

2013年(26)

分类: C/C++

2014-12-31 11:14:10

http://blog.csdn.net/d_fur/article/details/7831509
最近在学习链表,出现了几个容易混淆的概念,分别是头结点,头指针,首元结点,他们三个到底是什么关系呢?
头结点:
       头结点是链表里面第一个结点,他的数据域可以不存放任何信息(有时候也会存放链表的长度等等信息),他的指针区域存放的是链表中第一个数据元素的结点(就是传说中的首元结点)存放的地址。为什么要设头结点呢?第一点,防止防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL;第二点,为了方便对链表的插入、删除的操作,如果有头结点,在插入删除时,无论处理的是否是第一个元素、是否为空表,操作都是一样的。当然,链表可以不带头结点,只是插入删除在实现时麻烦一点。
首元结点:
 首元结点就是链表里面第一个元素的结点,也就是a1的结点。在存在头结点的情况下,头结点的指针区域指的就是首元结点。
头指针:
 如果链表里有头结点,头指针就指向头结点;如果没有头结点,头指针就指向首元结点。
 
 
这三个概念对单链表,双向链表,循环链表均适用。
阅读(1074) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~