在单链表中的存储结构
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList; //此时LinkList是结构体struct LNode类型的指针的别名
LinkList L;//声明一个指针L,指向LNode类型
//这句话等同于LNode *L;
Status InitList(LinkList &L){<span style="white-space:pre"> </span>//等同于Status InitList(LNode *&L)
//构造一个空的线性表L。
L=(LNode *)malloc(sizeof(LNode)); //产生头结点,并使L指向此头结点
if(!L) exit(OVERFLOW); //分配存储失败
L->next=NULL; //指针域为空
return OK;
}//InitList
void main(){
LinkList *L;
InitList(L);
DeleteList(L)
}
在构造空的线性表L时,需要对传进去的参数L本身改变,所以需要用指针L的引用&L
如果
Status InitList(LinkList L){
}
括号中的L只是一个形参,无法对main函数中的L改变,从而产生错误。
虽然InitLis(L),表面上看起来对L初始化了,但实际上形参L,并未对main函数中的L初始化。
在Delete(L)时,提示错误。