typedef struct Node { ElemType data; struct Node *next; }Node, *LinkList定义的问题,急急急急急急急

typedef struct Node
{ ElemType data;
struct Node *next;
}Node, *LinkList
这是单链表的定义,请问
不是在C语言中定义结构体中成员的类型不能是被描述的结构体本身嘛?
为什么这块可以这么定义?哪位大侠帮帮忙啊

第1个回答  推荐于2018-03-19
typedef struct Node
{
ElemType data;
struct Node *next;
}Node, *LinkList

这样是可以的,你是在纠结 struct Node *next; 这句吧?
那我们来看看这就,这里用了 Node 的数据结构么?没有,因为这里的这个类型是 *指针*,明白了吧?

指针是 C 里面的一种基本的数据类型。本回答被提问者和网友采纳

typedef在数据结构中的用法
typedef 为重定义 类型 相当於:struct LNode{ ElemType data;struct Lnode *next;};typedef struct LNode LNode;typedef struct LNode *LinkList;此后, LinkList 就是一个新的数据类型 相当於LNode LinkList是指向struct node{}的指针类型 LNode *p与LinkList p作用是一样的,即 LNode * 可用 ...

typedef struct LNode { ElemType data; struct LNode *next; } L...
首先typedef是类型定义,就是type define ;结构体中ElemType data 是数据域,struct LNode *next是指针域,就是next这个指针指向的结构体类型的结点。外面的LNode是结构体变量,即结点类型,也是为结构体赋予的新名字。*LinkList是结构体指针,即链表。

数据结构里怎么为linklist(结构体指针类型)类型的数据申请空间?_百度...
typedef struct Node { ElemType data;struct Node *next;}Node,*LinkList; \/\/*LinkList代表次类型为指针类型 所以是linklist p=(linklist)malloc(sizeof(*linlklist)); 当然如果你硬是要linklist p=(linklist*)malloc(sizeof(*linlklist)); 这个也行,但是它是指针的指针,所以会有警告但...

typedef struct LNode { ElemType data; struct LNode *next; }LN...
将自定义的结构体定义成两种类型,一种是结构体自己,一种是结构体指针类型,逗号隔开只是语法要求

...typedef struct node { ElemType data; struct node *next; }是...
看你是怎么定义的了,总之定义的这个ElemType类型的data变量是用来存储数据的;struct node *next;\/\/这个应该是表示指向节点的指针 ElemType你可以自己去定义的,譬如定义成一个这样的结构体:struct ElemType { char name[20];int age;};定或者是typedef int ElemType都可以,根据自己需要去定义了。

struct LinkNode{ ElemType data; Struct LinkNode *next; }; typedef...
\/\/返回值最小的结点的指针(空链表,返回0)LinkList find_min(LinkList head){ LinkList pmin,p;if(!head) return 0; \/\/空链表,返回0 pmin=head;p=head->next;while(p){ if(p->data<pmin->data)pmin=p;p=p->next;} return pmin;} ...

C语言有关函数指针的一个题目,看不懂,求解答
typedef struct Node{ ElemType data; struct Node *next;}Node;typedef struct Node *LinkList; \/* 定义LinkList *\/Status ListInsert(LinkList *L,int i,ElemType e){ int j;LinkList p,s;p = *L; j = 1;while (p && j < i) \/* 寻找第i个结点 *\/{p = p->next;...

...struct LNode {ElemType data; LNode *next;}; 这里struct LNode怎...
struct LNode就是定义一个结构体的意思,结构体就是一种数据存储单元,里面可以自由设定可以存储的内容形式,如int型,char型等等。这段代码应该是关于一个链表,链表的每个单元都是结构体。LNode *next就是构造了一个结构体指针,这个指针可以指向这种结构体,即LNode类型的结构体,指针是指向数据存放...

数据结构——声明定义单链表节点类型
lnode 是节点指针,用于单链表的链接操作(指向下一个节点),linklist是定义的结构体的名称,用于表示整个链表(其中包含两个方面,数据域和指针域,当链表中只有一个节点时,指的就是整个节点)typedef struct LNode{ElemTYpe data;struct LNOde *next; }LINklist,*Lnode;这里的*lnode和linklist 是...

c语言结构指针问题
typedef struct Lnode{ int data;struct Lnode *next;}LNode, *LinkList;定义结构 struct Lnode 为 LNode 类型 定义结构指针 struct Lnode* 为 LinkList 类型。声明:struct Lnode N;struct Lnode* L;就可以写成:LNode N; \/\/ 相当 struct Lnode N;LinkList L; \/\/ 相当struct L...

相似回答