链表中头指针与头节点的问题,求大神指教! 如果建立一个结构体 typedef struct stu

链表中头指针与头节点的问题,求大神指教! 如果建立一个结构体 typedef struct student { char name[20]; struct student *next; }book; 头指针的意思是不是就是想这样仅仅定义一个指向结构体的指针,如book *head; 头结点是不是不仅要定义一个指针,还要为其申请结点空间呀,如 book *L; L=(book *)malloc(sizeof(book)); 请问大神们我的理解是不是正确的呀?

首先,链表是不需要申请空间的。因为链表本来就是动态的。但是,每一个*head指针都必须指向一个空的结点,作为头节点。这是因为,当在链表中插入或者删除某一个结点时,如果没有头节点,那么就必须多写两个算法(在第一个结点前插入一个,尾部插入一个,中间插入一个),多了一个头节点,就可以把算法统一起来(你如果写过链表的插入程序就知道怎么回事了)。所以说,
*head=LinkedNode;指向一个为空的结点,这个节点是不放数据的,就是个打酱油的结点。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-15
L做为头节点,本身指向一个空的指针,L->next 为 NULL,首先它本身不存放任何数据,其次它需要开辟一个空间,它的作用就是作为整个链表的头链接着整个链表,你如果需要存放数据,就在开辟一个节点(cur)让L->next = cur; 不断开辟和链接就行了
第2个回答  2014-03-11
没听懂。。。。。。。。。。。。。。。。。。。。。。。。。。。。。追问

那你回答什么!

链表中头指针与头节点的问题,求大神指教! 如果建立一个结构体...
首先,链表是不需要申请空间的。因为链表本来就是动态的。但是,每一个*head指针都必须指向一个空的结点,作为头节点。这是因为,当在链表中插入或者删除某一个结点时,如果没有头节点,那么就必须多写两个算法(在第一个结点前插入一个,尾部插入一个,中间插入一个),多了一个头节点,就可以把算...

C语言链表头指针,表头,头结点,
头指针,是指向链表头的指针。头结点,是链表头指针指向的节点,通常是后添加的不包含任何数据信息的节点,而第一个节点才是真正的链表中的数据节点。表头,就是头结点。数据结构的教材中会有更好的讲解,望采纳,谢谢。

链表初始化的问题,指针问题。
我们先定义了一个SNode的结构体,是节点,然后我们定义了Stack 是一个指针变量指向了SNode,实际上它就是链表的最开始的头指针,然后我们进行初始化,定义头节点指针为S,这时候我们注意,Stack是一个指针型变量,指向的是结构体,因此,malloc分配函数直接进行强制转化 左边括号就是Stack, 转化成了一种...

有个问题,如head是头指针和头结点的区别
\/\/ 1. 你的程序在第一次s->next=head->next;会挂,因为head是指针,并非实体节点,且head没 \/\/ 有初始化很危险 include <iostream> using namespace std;class list { public:list *head;list *next;int data;list(){ head = NULL;next = NULL;} void creat(){ int x;cin>>x...

c语言中,头指针,表头指针,头结点,第一结点分别是什么???举个例子,谢谢...
头指针是以确定线性表中第一个元素对应的存储位置,一般用于处理数组,链表,队列等数据结构。单链表可以用头指针的名字来命名。单链表中头指针指向头节点。头指针指向上述数据结构的起始数据的指针,如指向数组首地址的指针,指向链表表头节点的指针。头指针也就是表头指针 在单链表的第一个结点之前附设一...

C++中带头节点的动态链表,头节点指针内存分配出错
如果没有first = new Node的话,就代表first没有指向一段内存,所以你要引用其中的东西肯定会崩溃,指针必须指向内存,不然就是所谓的野指针,而p指向first,意思是p和first指向同一段内存,其实还是没内存不是?所以出错了,记住一点就是指针必须有指向的内存 ...

typedef struct用法
```typedef struct Node{int data;struct Node*next;}ListNode,*LinkedList;```其中,ListNode是定义了一个新的数据类型名,即链表中的节点类型,LinkedList则是一个指向链表头节点的指针类型。四、拓展知识 typedef不仅可以用来定义新的结构体类型名,还可以用来定义新的函数指针类型名、数组类型名等。

什么是头指针?头指针跟头结点有什么区别和联系?
在线性表的链式存储结构中,头指针指链表的指针,若链表有头结点则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。头结点是为了操作的统一、方便而设立的,放在第一元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等),有头结点后,对在...

...头结点的类型不是不含data的,但是头指针p却有
所谓的头指针就是指向第一个结点的指针。至于头结点其实是可有可无的,链表建立头结点就是为了方便操作,头结点与普通结点是一样的,它也有数据域data和指针域next,比如判断链表是否为空,直接判断头指针的next是不是等于null就行了。因为头结点只是一个辅助方便操作的作用,所以头结点的data通常是不...

C语言问题:建立一个有三个结点的链表,然后输出每个结点的数据。
要求:建立一个有三个结点的链表,然后输出每个结点的数据。要求每个结点有三个成员:num(char),score(int),next(指针)请各位高手帮忙啊!为什么都那么复杂啊,看着就头晕了……... 要求:建立一个有三个结点的链表,然后输出每个结点的数据。要求每个结点有三个成员:num(char),score(int),next(指针)请各位高手帮忙...

相似回答