回 帖 发 新 帖 刷新版面

主题:询问严蔚敏《数据结构(C语言版)》一书当中一处不明白的地方。

我毕业后自己重新学习数据结构,买了严蔚敏的数据结构(C语言版)一书,现在快把链表学完了,但是在学习的过程当中,对书中一处不是很明白,想请教大侠帮忙解答一下:
书中有类似下面的对于结构体的定义:
typedef struct LNode {
        ElemType data;
        struct LNode *next;
}LNode, *LinkList

 

        关于链表,有如下的方法:
        Status ListEmpty(LinkList L)
        Status InitList(LinkList &L)


        我知道LinkList在上面的定义里是作为一个结构体指针,在第一个方法当中作为参数的话等价于:Status ListEmpty(LNode* L),可以直接用结构体变量进行赋值,而对于第二个,如果按照指针直接转化,等于Status InitList(LNode* &L),可能我C++功底不是很扎实,不是很明白这个赋值的意思,以及参数LinkList L与LinkList &L的不同之处,能否请知道的人帮忙解答一下,谢谢了!

回复列表 (共3个回复)

沙发

我不懂c++,只知道第二个是c++中引用的概念。int &p总不能按lz方法转换吧,其实不是转换的问题。
我只知道有这么个用法,不敢胡说八道了,具体解释,参见c++:引用 的概念。

板凳

[em8]

3 楼


Status ListEmpty(LinkList L)  这种用法一般用来进行链表操作 通常把链表头结点指针作为参数传递
Status InitList(LinkList &L)  这种用法一般用来初始化链表,为头结点分配内存空间,必须用指针的指针去操作,否则不能成功返回分配的头结点内存,这里你只要记住在C语言里参数传递只有复制,应该能明白我说的什么
Status ListEmpty(LinkNde L) 这种用法一般是对一个节点操作


LinkList L  是对链表操作    LinkNde L是对节点操作

我来回复

您尚未登录,请登录后再回复。点此登录或注册