非常多数据结构的书上解说数据机构时都是採用伪代码实现。事实上感觉蛮不直观的。所以对于全部的数据结构操作我都将其用C实现一遍。

树是学习二叉树的基础,也是后面理解B树。B+树的等树的基础,以下就给出树的几个简单操作,方便理解。

数据结构

//-------数据结构----------------------------------------
#define m 3  //定义度为3的树
typedef char datatype;
typedef struct node
{datatype data;struct node* child[m];
}treenode;
//------------------------------------------------------

基本操作

//--------操作------------------------------------------
void preorder(treenode* t)
{int i;if (t){printf("%c",t->data);for(i=0;i<m;i++){preorder(t->child[i]);}}
}void postorer(treenode* t)
{int i;if (t){for(i =0;i<m;i++){postorer(t->child[i]);}printf("%c",t->data);}
}
//必须用指针的指针,假设实參是一个指针,则形參仅仅是一个实參指针的拷贝,所以实參指针的值是不会改变的。
void createtree(treenode** p)
{//输入的时候直接输AB###C###D###回车int i;char ch;scanf("%c",&ch);if (ch =='#'){*p = NULL;}else{*p = (treenode*)malloc(sizeof(node));(*p)->data = ch;for (i =0;i<m;i++){createtree(&((*p)->child[i]));}}
}
//------------------------------------------------------

对于树的操作不须要做太多,大多数都是针对二叉树的操作,所以就给出了简单的几个操作,足矣。

转载于:https://www.cnblogs.com/clnchanpin/p/7063096.html

数据结构——树的简单操作集合相关推荐

  1. 顺序表输入栈元素c语言,C语言数据结构之栈简单操作

    C语言数据结构之栈简单操作 实验: 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化顺序栈 (2)插入元素 (3)删除栈顶元素 (4)取栈顶元素 (5)遍 ...

  2. 数据结构-无序(自由)树的简单实现(C++)

    本文使用兄弟孩子表示法用C++实现普通树的简单建立. 实现了插入数据,查询数据,前序遍历,中序遍历,后序遍历. 树状图的概念: 树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层 ...

  3. 数据结构 多路查找树 ---------B树和B+树的简单介绍

    参考链接:微信公众号 程序员小灰 https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw https://mp.weixin.qq.com/s/jRZMMO ...

  4. 数据结构单链表的创建以及简单操作

    在数据结构中: 目录 一.数据节点类型结构体封装 二.创建单链表 1.创建链表 2.头部插入 3.遍历链表 4.尾部插入 5.释放链表 链表可以解决顺序表无法开辟连续空间的问题,大大提高了内存的利用率 ...

  5. 数据结构—树与二叉树

    总第119篇 前言 之前谈到的线性表.栈和队列都是一对一的数据结构,但是现实中也存在很多一对多的数据结构,这篇要写的就是一种一对多的数据结构---树.全文分为如下几部分: 树的一些基本概念 树的存储结 ...

  6. 【数据结构(C语言)】数据结构-树

    树 文章目录 树 一.基本概念 1.树的定义 2.树的节点 3.树的性质 4.基本操作 二.二叉树 1.二叉树的特点 2.特殊二叉树 3.性质 4.存储结构 (1)二叉链表 (2)三叉链表 5.线索化 ...

  7. 考研数据结构树——读书摘抄总结

    这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战 考研数据结构树--读书摘抄总结 树(Tree)是n(n≥0)个结点的有限集.n=0时称为空树.在任意一棵非空树中:(1)有且仅有一个特定的称 ...

  8. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-集合和映射

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  9. 数据结构——树、二叉树、森林、哈夫曼树、字符串模式匹配

    %%%%%% 字符串模式匹配算法--详解KMP算法 https://blog.csdn.net/zc474235918/article/details/40474525 http://www.ruan ...

最新文章

  1. Java的继承多态的练习
  2. python中matplotlib条形图-python matplotlib库绘制条形图练习题
  3. mysql对执行结果进行html格式的输出?输出html格式?
  4. PHP Liunx 服务安全防范方案
  5. 美团O2O排序解决方案——线上篇
  6. 复现经典:《统计学习方法》第 3 章 k 近邻法
  7. ns3 入门案例2:third.cc
  8. memset详解 设置无穷大INF
  9. 为什么要与下属建立良好的人际关系?
  10. Python入门--os.walk
  11. (转)开发监控Linux 内存 Shell 脚本
  12. 一个女算法程序媛的日常
  13. linux配置ssh免密码登录
  14. Com uma forca, com uma forca
  15. 关于html引用css无法加载——新手踩的坑
  16. 第七章 变量进阶与点阵LED 练习题
  17. MySQL Router 8 详解
  18. c语言打砖块游戏说明,c语言打砖块游戏.doc
  19. 看牙分期软件3.10版本更新及功能介绍
  20. 高速接口----使用sfp完成以太网传输

热门文章

  1. GDCM:将DICOM文件和XML文件相互转换的测试程序
  2. boost::callable_traits的remove_member_const_t的测试程序
  3. ITK:可视化静态密集2D水平集零集
  4. Qt发布到Google Play
  5. OpenGL GLSL Shader Subroutines函数的实例
  6. C++统计10亿以内所有的质素(素数)的实现算法(附完整源码)
  7. C语言实现臭皮匠排序stooge sort 算法(附完整源码)
  8. C++静态多态与动态多态
  9. C++何时调用拷贝(复制)构造函数
  10. QT的QFileSelector类的使用