为什么下面这个数据结构里把结构体声明为Node,结构体中的指针域也是一个Node

微瞰技术
博客专家认证
2017-05-26 09:13:43
typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *LinkList;
...全文
529 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-05-27
  • 打赏
  • 举报
回复
你完全可以声明为 void * 每次再转一遍,只要你不嫌麻烦。
cain-won 2017-05-27
  • 打赏
  • 举报
回复
引用 3 楼 sleep_s 的回复:
链表是有数据和指向下一个地址的指针组成的。无论结构体里多少个数据,必须要有一个地址指针
那为什么这个地址指针是用他本身声明的呢?→因为链表的节点都是同一种类型。
cain-won 2017-05-27
  • 打赏
  • 举报
回复
链表啊。Node类型指针next指向下一个节点,如此类推,形成链式结构
自信男孩 2017-05-27
  • 打赏
  • 举报
回复
建议看一下链表的相关知识,看别人如何写链表的。
sleep_s 2017-05-27
  • 打赏
  • 举报
回复
引用 4 楼 u011342403 的回复:
[quote=引用 3 楼 sleep_s 的回复:] 链表是有数据和指向下一个地址的指针组成的。无论结构体里多少个数据,必须要有一个地址指针
那为什么这个地址指针是用他本身声明的呢?[/quote] 因为用本身结构体声明后,这个指针指向的地址也是一个具有数据和指针的结构体(也就是是本身结构体里面的内容)
微瞰技术 2017-05-27
  • 打赏
  • 举报
回复
引用 3 楼 sleep_s 的回复:
链表是有数据和指向下一个地址的指针组成的。无论结构体里多少个数据,必须要有一个地址指针
那为什么这个地址指针是用他本身声明的呢?
sleep_s 2017-05-27
  • 打赏
  • 举报
回复
链表是有数据和指向下一个地址的指针组成的。无论结构体里多少个数据,必须要有一个地址指针
赵4老师 2017-05-27
  • 打赏
  • 举报
回复
http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素
  • 打赏
  • 举报
回复
int *p = malloc(10); 分配了10个int的空间,没有说是10个char空间。 同样链表中一个节点可以看着|--data--|--next--|,这是一个空间,而next是一个point,是指向下一个节点的指针,下一个节点是什么, 是一个struct node结构体,所以这个node也要是对应的类型。
paschen 2017-05-27
  • 打赏
  • 举报
回复
有什么问题吗 结构体中是一个Node*的指针,可以指向下一个对象,这样可以形成一个链
微瞰技术 2017-05-26
  • 打赏
  • 举报
回复
引用 1 楼 dong364 的回复:
首先指针本身的大小是固定的,不是4字节就是8字节(编译器选x86就是4字节,选x64就是8字节),其次结构体本身中存放一个本身数据类型的指针,其目的显而易见,就是形成链表,可方便顺序访问查找。
为什么存放一个本身数据类型的指针就是为了形成链表,有什么原因吗。能详细说一下吗?
dong364 2017-05-26
  • 打赏
  • 举报
回复
首先指针本身的大小是固定的,不是4字节就是8字节(编译器选x86就是4字节,选x64就是8字节),其次结构体本身中存放一个本身数据类型的指针,其目的显而易见,就是形成链表,可方便顺序访问查找。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧