数据结构体定义的问题1 typedef struct CSNode{TElemType data;CSNode *firstchild,*nextsibling;}CSNode,*CSTree;最后的CSNode,*CSTree;分别是什么意思?2void insert(LinkList p;int x)void insert(LinkList &p;int x)void insert(LinkList *p;int

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 06:32:45

数据结构体定义的问题1 typedef struct CSNode{TElemType data;CSNode *firstchild,*nextsibling;}CSNode,*CSTree;最后的CSNode,*CSTree;分别是什么意思?2void insert(LinkList p;int x)void insert(LinkList &p;int x)void insert(LinkList *p;int
数据结构体定义的问题
1
typedef struct CSNode
{
TElemType data;
CSNode *firstchild,*nextsibling;
}CSNode,*CSTree;
最后的CSNode,*CSTree;分别是什么意思?
2
void insert(LinkList p;int x)
void insert(LinkList &p;int x)
void insert(LinkList *p;int x)
这三种定义有什么区别?
3
LinkList s;
LinkList *s;
这两种定义什么区别?
4
s=(LinkList)malloc(sizeof(Node));
s=(LinkList *)malloc(sizeof(Node));
这个又有什么区别呢?
thanks

数据结构体定义的问题1 typedef struct CSNode{TElemType data;CSNode *firstchild,*nextsibling;}CSNode,*CSTree;最后的CSNode,*CSTree;分别是什么意思?2void insert(LinkList p;int x)void insert(LinkList &p;int x)void insert(LinkList *p;int
1.CSNode是结构体类型,CSTree是结构体指针类型.
CSNode x;则x是一个结构体变量;CSTree x;则x是指向结构体变量的指针
2.void insert(LinkList p;int x) 形参p是变量,使用这个不能带回修改后的结果
void insert(LinkList &p;int x) 形参p是变量的引用,使用这个可以带回修改后的结果,只能用在C++中
void insert(LinkList *p;int x) 形参p是变量的指针,使用这个可以带回修改后的结果,效果和第二个一样,但不如第二个方便
3.LinkList s; s是链表类型的一个变量
LinkList *s;s是指向链表头结点的指针变量 (我这样说的前提是LinkList是结构体类型,而不是指针类型)
如果LinkList是指针类型,那么第一种s就是指针,第二种s就是指针的指针
4.假设LinkList是结构体类型,那么第一种开辟空间的写法是错误的,第二种是对的,用malloc开辟空间,返回的是指针.
假设LinkList是结构体指针类型,那么第一种是是开辟了一个节点的空间,并返回了其起始地址;第二种应该不对吧.