链表必须使用二级指针或者一级指针的引用吗?
/* Note:Your choice is C IDE */#include "stdio.h"
#include "stdlib.h"
#define ERROR -1
#define OK 1
typedef struct node
{
int data;
struct node *next;
}Node,*LinkList;
/*构造一个空表*/
void Init_LinkList(LinkList *Head_pointer)
{
*Head_pointer=NULL; /*指针Head_pointer为二重指针,*Head_pointer=NULL表示结点为空*/
}
/*
插入一个新元素(头插)
(1)分配一个新的结点的空间;
(2)分配失败退出;
(3)使用传递的参数为新节点的数据域赋值;
(4)为新的节点的指针域赋值指向原来的头结点;
(5)头指针指向新节点
*/
int Insert_First(LinkList *Head_pointer,int x)
{
Node *p;
p=(LinkList)malloc(sizeof(Node));
if (p==NULL)
return ERROR; /*分配失败*/
p->data=x; /*数据域赋值*/
p->next=*Head_pointer; /*新指针指针域指向原来的头结点*/
*Head_pointer=p; /*头结点指针域指向新节点*/
return OK; /*插入成功*/
}
(此处省略部分代码)
问题:LinkList *Head_pointer;在完整的代码中出现多次,为什么不能只用Node *Head_pointer表示?
谢谢来回答的各位啦~纠结了好久了