之前不太理解,只会这样

#include<stdio.h>
typedef int element;
typedef struct treenode node;
typedef struct treenode{node* l;node* r;element data;
};
void creat_tree(node **p)
{*p=(node*)malloc(sizeof(node));(*p)->l;...............//->优先级高于*}
node *head;
creat_tree(&head);

现在可以

#include<stdio.h>
typedef int element;
typedef struct treenode* node;
typedef struct treenode{node l;node r;element data;
}binode,*bitree;
void creat_tree(bitree *p)
{*p=(bitree)malloc(sizeof(binode));(*p)->l;...............}
bitree head;//等价于node head
creat_tree(&head);

上面有啥区别呢?为啥要区分呢?
第一个c编译器报错= . =
那到底有啥区别?本质上其实木有

用typedef后,binode是个类型名,可以创建变量。此时他代表的是结构体.
同理,bitree也可以创建变量,不过他是定义了一个指向该结构体的指针
如果不用typedef,他只是一个变量名而已。

所以bitree an相当于 struct treenode* an ,也就是 bitree an相当于 node an

关于二叉树的链表表示的一个问题相关推荐

  1. 线索二叉树(基于链表存储树结点)

    有以下场景 如果使用中序遍历,那么得到的顺序是:HDIBEAFCG,可以得知A的前驱结点为E,后继结点为F.但是,这种关系的获得是建立在完成遍历后得到的.如果我们每次想得到某个节点的前驱或者后继,都要 ...

  2. 【 C 】简化双链表插入函数(对在双链表中插入一个新值的简明程序的简化)

    目录 背景 第一个技巧是语句提炼(statement factoring) 第二个简化技巧 最终简化版本 背景 上篇博文:[ C ]在双链表中插入一个新值的简明程序,讲了一个简明的双链表插入函数,那个 ...

  3. 【 C 】在双链表中插入一个新值的简明程序

    上两篇博文讲了如何在单链表中插入一个值: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) 这篇博文讲解如何在双链表中插入一个值. 单链表的替代方案就是双 ...

  4. 【 C 】在单链表中插入一个新节点的尝试(二)

    在上篇博文中:[ C ]在单链表中插入一个新节点的尝试(一),我们最后提到了如果向单链表的开头(起始位置)插入一个节点,上篇博文中给出的程序显然完成不了这任务. 这篇博文中,我们将解决这个问题,给出一 ...

  5. 【 C 】在单链表中插入一个新节点的尝试(一)

    根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...

  6. 反转链表:输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。...

    2019独角兽企业重金招聘Python工程师标准>>> 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点.     为了正确的反转一个链表,需要调整链表 ...

  7. 将两个有序链表合并为一个链表任然有序C语言

    将两个有序链表合并为一个链表任然有序,两个链表都是从大到小或者从小到大. 方法: 1.将两个链表连起来,对所有元素进行排序. 2.因为两个链表的长度可能不同,则将两链表相同长度的一部分进行排序,将较长 ...

  8. python链表中删除一个节点数据_python实现单链表中删除倒数第K个节点的方法

    本文实例为大家分享了python实现单链表中删除倒数第K个节点的具体代码,供大家参考,具体内容如下 题目: 给定一个链表,删除其中倒数第k个节点. 代码: class LinkedListAlgori ...

  9. php链表和联表的区别,PHP_浅谈PHP链表数据结构(单链表),链表:是一个有序的列表,但 - phpStudy...

    浅谈PHP链表数据结构(单链表) 链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个 ...

最新文章

  1. 解决虚拟机VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法
  2. python虚拟环境的使用
  3. Vue全家桶 + webpack 构建单页应用初体验
  4. 如何将实时计算 Flink 与自身环境打通?
  5. 【Vs2015】 常用字体的设置
  6. 加载场景不销毁的实现
  7. ie6常见css bug
  8. 读书 | 数字化转型的道与术(上)
  9. mongoDB 使用手册
  10. 一招彻底破除数据孤岛!这家企业用数据集市整合了30套系统
  11. 【AI视野·今日NLP 自然语言处理论文速览 第二十期】Thu, 8 Jul 2021
  12. Windows Serivce服务实现过程和打包安装
  13. java webservice soap请求_使用Java对WebService的SOAP请求
  14. Log4j2 高危漏洞分析
  15. 360系统修复过程中卡慢问题的解决方案
  16. 关于编程-R语言跟Python到底学哪个好?
  17. ubuntu如何打拼音
  18. 前缀树python实现
  19. rtbeginreg.html文件,【答疑】安装3DMAX2014版本出现“Autodesk Licensing”的小窗口 - 视频教程线上学...
  20. 8421拨码开关C语言编程,8052单片机怎样读出8421BCD码拨码开关设定的数值

热门文章

  1. linux C函数之access函数的用法
  2. Linux命令(基础)
  3. windows8.1与centos7.0双系统启动项设置
  4. java Windows7 下环境变量设置
  5. Html编辑器kindsoft
  6. SQL text字段的替换处理(无法批量更新,写法记录)
  7. linux 软件安装基本操作
  8. 修改sqlplus中显示时间日期的格式
  9. C/C++ 混合编程
  10. python拼写检查_拼写检查 - Python文本处理教程™