数据结构的线性表

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:00:33
开头有个
typedef struct lnode {
int data;
struct lnode *next;
}lnode,*linklist;

这是干啥的?
还有 head=(linklist) malloc (sizeof(lnode));
这句不知道干什么用的。。

typedef是用户自定义结构体,Inode是结构体的名字,结构体的成员有int型的数据域和指向结构体Inode类型的指针域。
后面的Inode是结构体变量名,*linklist和*next的作用是一样的,都是指向结构体类型的指针。
head是一个头指针,
(linklist) malloc (sizeof(lnode))是申请一个Inode那么大的空间,并把这个空间的地址赋给head。

typedef:type define类型定义
typedef A B;//B被定义为A的别名,实质上A、B相同
例如
typedef int integer;
typedef long word;

typedef struct lnode {
int data;
struct lnode *next;
}lnode,*linklist;
将结构体lnode定义两个别名lnode和*linklist(此为指针,指向结构体的首地址)

head=(linklist) malloc (sizeof(lnode));
可分解为:
int Bit = sizeof(lnode);//lnode类型占用的字节数
head = (linklist)malloc(Bit);//malloc向系统申请Bit字节的空间,q其返回类型为void,然后强制转型为linklist所代表的结构体指针类型

typedef struct lnode {
int data;
struct lnode *next;
}node,*linklist;
---------------------------------
这个是定义一个节点。它其实是一种简写的形式。完全的形式如下:
struct lnode {
int data;
struct lnode *next;
};
typedef struct lnode node;//为节点取外别名。
typedef struct l