数据结构(C语言)题:循环单链表L中,指针P所指结点为尾结点的条件是()?
如果存在空头结点(head指向的结点只存放head->next的指针,不储存值) p->next == head ->next 如果头结点非空(head指向的结点不仅存放head->next的指针,也储存值) p->next == head
C语言链表那一块,Node * 和 *list分别是什么意思?
*LinkList那个 可以认为是typedef struct Node * LinkList; 也就是 这个*是前面那个Node的 即 LinkList 等效于Node * malloc前面的是一个强制转换 把返回值转换成Node *的类型一般的 可以这样写LinkList h = (Node *)malloc(sizeof(Node)); 也可以LinkList h = (LinkList)malloc(sizeof(Node)); 它们是等效的
循环链表的存储空间是连续的,为什么错?
循环链表是由单链表的最后一个结点指针不指向null,而是指向头结点而成。因此我们分析单链表的存储结构。
单链表是通过一组任意的存储单元存储线性表中的元素的。 这是单链表的定义。单链表的存储单元是任意的!!
没有说要连续。连续的只有顺序表!顺序表!
顺序表!
顺序表是用一组地址连续!!的存储单元,依次!!存储线性表中的数据元素。
而循环链表 它的定义前面已经说了,只是最后一个结点不为null(空),而是指向链表的头结点哦。
循环链表也是链表,链表的存储空间不一定连续的。但是顺序表是一定连续的存储空间哦。

