链表中 的 头指针 和 头结点 是不一样的

原创 2012年03月29日 19:25:35

谢谢 黄队长(http://blog.csdn.net/huangcongjie) 的 指导, 让困扰我的这个问题:“头结点是什么?头指针是什么?” 得以解决。

// 链表中的 结点的 定义

typedef struct node

{

  int item;

  struct node* next;

}Node;

 

// 链表 本身的 结构 的定义

typedef struct Link

{

Node * head;

}Link_Type;

 

由 以上的 定义可以得出:

/********************** 没用 指针变量的格式 如下**************************/

Node Node_Head;   // 定义 一个 结点, 这个 就可以看做是 头结点, 头结点必须是链表中的第一个结点,且它的数据域中一般存放的是链表的长度(类似数组的长度)

Node_head.item = 0;   //  头结点 的 数据域 没有 实际 的 意义, 即 不存 有用的数据, 我这里初始化为0, 也可以初始化为其它整形数据。

Node_head.next = NULL;  //  头结点 的 指针域 初始化为空

 Link_Type SeqLink; // 定以 一个 链表

SeqLink.head = &Node_head; // 头指针 初始化 为 指向 头结点。 头指针 是指向头结点 或 指向链表中的第一个结点(在没有头结点是)。

 

/********************** 用 指针变量的格式 如下**************************/

Node *Node_Head = (Node*)malloc(sizeof(Node) * 1);   // 别忘分配空间。

if ( NULL == Node_Head) exit(1);  

Node_head->item = 0;   //  头结点 的 数据域 没有 实际 的 意义, 即 不存 有用的数据, 我这里初始化为0, 也可以初始化为其它整形数据。

Node_head->next = NULL;  //  头结点 指针变量 的 指针域 初始化为空

 Link_Type *SeqLink = (Link_Type*)malloc(sizeof(Link_Type) * 1); // 定以 一个 链表 指针

if ( NULL == SeqLink) exit(1); 

SeqLink->head = Node_head; // 头指针 初始化 为 指向 头结点。 头指针 是指向头结点 或 指向链表中的第一个结点(在没有头结点是)。

 

总结:

1.头指针 是指向头结点 或 指向链表中的第一个结点(在没有头结点是)。

2.头结点必须是链表中的第一个结点,且它的数据域中的数据无用

3. 谢谢 黄队长http://blog.csdn.net/huangcongjie 的 指导!

4.以上是我的理解~如有错误和不妥之处,还请大家批评指导~谢谢!!!~

 

以上~~~

结构之美:单链表的头结点与头指针

当链表的每个结点只包含一个指针域时,我们称此链表为单链表。 关于单链表的存取,有时候我们在单链表的第一个结点(有效元素)之前附设一个结点,称之为头结点;指向头结点的指针,称之为头指针;对单链表的存取...

【c/c++】单链表、头指针、头结点、首元节点

链表中第一个结点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点,其实就是上一个的后继指针指向的位置。 这里有个地方要注意,就是对头指针概念的理解,这个很重要。“...

数据结构——单链表的头指针、头结点…

我们所说的单链表也是一种线性表,所以总得有个头有个尾。链表中第一个结点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点,其实就是上一个的后继指针指向的位置。 ...

结构之美:单链表的头结点与头指针

原文链接:http://www.nowamagic.net/librarys/veda/detail/1805 当链表的每个结点只包含一个指针域时,我们称此链表为单链表。 关于单链表的存取,有时...

数据结构——链表(头指针、头结点)

链表 头指针 头结点

链表、头指针、头结点

图1为线性表(ZHAO, QIAN, SUN, LI, ZHOU, WU, ZHENG, WANG)的逻辑状态。头指针 指示链表中第一个结点(即第一个数据元素的存储映像)的存储位置。同时,由于最后一个...

单向链表指针头结点的修改

typedef int DataType; typedef struct Node { DataType data; struct Node *next; }SLNo...

关于链表中头指针和头结点的理解

线性表使用顺序(数组)存储时有个弊端,那就是在插入和删除时需要大量的移动数据,这显示是非常消耗时间的,所以可以采用链式存储,即有一个指针域(单链表),来记录下个结点的存储位置(地址),这样在插入和删除...

链表、头指针、头结点(经典)

图1为线性表(ZHAO, QIAN, SUN, LI, ZHOU, WU, ZHENG, WANG)的逻辑状态。头指针 指示链表中第一个结点(即第一个数据元素的存储映像)的存储位置。同时,由于最后一...

在链表中使用头结点与尾指针

1 头结点 首先,不要被以下三个词组弄混了: 链表头:数据内容为第一个元素的结点。 头指针:指向头结点元素的指针。 头结点:数据内容无效,其指针是头指针。 一句话描述为:头指针是指向头结点的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:链表中 的 头指针 和 头结点 是不一样的
举报原因:
原因补充:

(最多只允许输入30个字)