循环链表的表名指的是头指针还是头结点呢
求助:当要在第一个位置插入元素时,尾指针是从*pNode开始遍历的,这个*pNode是头结点吗?可是记得小甲鱼之前讲的表名是头指针哎,有点蒙了,请大佬们赐教!/*链表存储结构的定义*/
typedef struct CLinkList
{
int data;
struct CLinkList *next;
}node;
/*插入结点*/
/*参数:链表的第一个结点,插入的位置*/
//别管他多少*,反正*pNode就是一个指向node类型的指针
//指针的指针
void ds_insert(node **pNode , int i)
{
node *temp;
node *target;
node *p;
int item;
int j = 1;
printf("输入要插入结点的值:");
scanf("%d", &item);
if(i == 1)
{ //新插入的结点作为第一个结点
temp = (node *)malloc(sizeof(struct CLinkList));
if(!temp)
exit(0);
temp->data = item;
/*寻找到最后一个结点*/
for(target = (*pNode); target->next != (*pNode); target = target->next)
//*pNode是头结点 ?
;
temp->next = (*pNode);
target->next = temp;
*pNode = temp;
}
else
{
target = *pNode;
for( ; j < (i-1); ++j )
{
target = target->next;
}
// target指向第三个元素的
temp = (node *)malloc(sizeof(struct CLinkList));
if(!temp)
exit(0);
temp->data = item;
p = target->next;
target->next = temp;
temp->next = p;
}
} 是头结点
详情:传送门 先说结论:*pNode是头结点
头指针是以确定线性表中第一个元素对应的存储位置,也就是说pNode是头指针
而头指针pNode里面的内容可以认为是头结点,即*pNode=头结点
举个例子:
int i=1
int *p=i
假设i为头结点
这里的p相当于头指针
*p就是头结点
页:
[1]