注册 登录
编程论坛 数据结构与算法

关于链表的定义

小白猿 发布于 2014-12-28 18:28, 1191 次点击
struct LNODE{
ElemType data;
struct LNODE *next;
};
typedef struct LNODE LNode;
typedef struct LNODE * LinkList;
以上为定义一个链表,
那么typedef struct LNODE LNode;是定义链表中的一个节点;
typedef struct LNODE * LinkList;是定义了一个指向链表的指针linklist;
1:这个理解正确吗?
以下是初始化操作
Status Init_L(LinkList L){
if (L=(LinkList *)malloc(sizeof(LNode)))
{L->next=NULL;return 1;}
else return 0;
}
2:初始化中 L 的类型是指向链表指针的指针还是 L 是其中的一个节点?
3 回复
#2
azzbcc2014-12-29 10:33
1 . 不正确
2 . 哪个 L ?

两个 L 都是指向链表的指针,也是链表的头节点的指针,它指向链表头节点。

前者指向被传参,即调用时传入的链表
后者指向malloc后新的链表

二者不等价,初始化函数是失败的。
#3
小白猿2014-12-29 13:24
回复 2楼 azzbcc
那么定义的Lnode和*Linklist应该怎么用?
#4
azzbcc2014-12-29 16:22
typedef int myint;
typedef int *pmyint;
int   a = 3;
myint b = 3;

int  * pa = &a;
pmyint pb = &b;
1