在学数据结构的时候的一个问题
typedef struct node
{
int data;
struct node *next;
}node,*linklist;
1。这里的typedef这样用有什么好处?
2。node和*linklist是分别定义了一个node结构,还是别的什么?
3。node和*linklist有什么联系?
谢谢~
问题点数:20、回复次数:9Top
1 楼daizh()回复于 2003-11-03 18:59:13 得分 5
1、用typedef定义struct node别名,这样在使用时直接用
node var;而不用struct node var;
linklist vlist;而不用struct node * vlist;
从而比较简洁。
2、它们只是struct node 和struct node *的别名,而没有重新定义一个node结构。
3、node * 就是linklistTop
2 楼tnavy666(越晚越精神)回复于 2003-11-03 19:05:22 得分 0
放在程序中想可能好想一点
我以前也想不懂
看多了就了解了Top
3 楼yiyepianzhou(一叶扁舟)回复于 2003-11-03 19:12:56 得分 5
typedef定义结构,好处?不清楚,反正大家都这样用;
node是一个node结构,linklist是一个指针,指向node的指针;
单看这个定义结构,node是结点,linklist是指针,在使用的时候,如果把这两个仅从性质上来看,可能会出现node=*linklist的形式(我是指从类型上来看)
描述不清楚请见谅,不过,等你真正拿c语言编程,你会理解的,实践一下,兄弟……Top
4 楼gccr(古城痴人)回复于 2003-11-03 19:13:36 得分 5
1。这里的typedef这样用有什么好处?
打程序时简单,也好看
2。node和*linklist是分别定义了一个node结构,还是别的什么?
node就是这个结点,*linklist是指向这个结点的指针
3。node和*linklist有什么联系?
就像int 跟 int*一样的关系
Top
5 楼angelboycn(这段时间目光瞄准java`)回复于 2003-11-03 19:15:24 得分 0
以前的C语言代码都是这样写的,到了C++这样用的就少了,因为在定义一个结构体变量的时候struct可以省略。
比如:
node Node;
而在C语言中就要写:
struct node Node;
Top
6 楼qufan(打死不回头)回复于 2003-11-03 19:23:26 得分 0
在c++中使用一个已经定义了的struct就不必在前面加struct(但是在c中要要的)
另外typedef struct node
{
..//结构定义
}node,*linklist
对于第一个没什么好说的,第二个就定义了一个指针,类型为nodeTop
7 楼pipilang(皮皮狼)回复于 2003-11-03 21:45:30 得分 0
再问问
#include "stdio.h"
#include "malloc.h"
typedef struct node
{
int data;
struct node *next;
}node,*linklist;
linklist p;
linklist initate(){ //linklist在这是什么意思呀?
//初始化结构
p = (linklist)malloc(sizeof(int));
p->pointer = NULL;
return(p);
}
void main(){
initate();
}
Top
8 楼angelboycn(这段时间目光瞄准java`)回复于 2003-11-03 21:59:55 得分 0
typedef struct node
{
int data;
struct node *next;
}node,*linklist;
linklist在这里只是一个typedef名字。实际上就是把struct node*替换成了linklist
linklist initate()等同于struct node *initate();
Top
9 楼laiben(Ben)回复于 2003-11-03 22:01:37 得分 5
linklist initate() //函数返回类型值为linklist,也就是你前面定义的结构体指针Top




