【C语言】 二叉树的基本运算】的更多相关文章

• 二叉树节点类型BTNode: typedef struct node { char data; struct node *lchild, *rchild; } BTNode; 创建二叉树 void CreateBTree(BTNode *&b, char *str) { BTNode *St[MaxSize], *p = NULL; , ch, k, j = ; b = NULL; ch = str[j]; while (ch != '\0') { switch (ch) { ; break…
  修改:刷了一段时间的题,水平渐涨,发现同学录真的要做成市面可行的应用的话,应该按学号建立二叉平衡树,红黑树是一个可行的选择. 在同学的推荐下,来到博客园来找志同道合的人交流代码.3个月后参加蓝桥杯比赛,报名的是C语言组,所以接下来3个月我会在此发布刷题时的心得与原创代码. 以下代码是我的课程设计自己花12小时编写的二叉树同学录. 反思一下自己的代码,删除节点用了取巧的办法,并没有完全删除节点内信息,仅仅是将学号数组第一个字符设为空,没有释放节点与接下来的连接节点. 为什么用二叉树,并没有掌握…
编译器为vs2013 #include "stdafx.h" #include<malloc.h> #include<stdlib.h> #define OVERFLOW -1 typedef char BElemType; typedef int Status; typedef struct BiTree{ BElemType data; struct BiTree *lchild,*rchild; }BitNode,*BinTree; //函数声明 void…
二叉树的建立和遍历都要用到递归,先暂时保存一下代码,其中主要是理解递归的思想,其它的就都好理解了.这里是三种遍历方式,其实理解一种,其它的几个就都理解了,就是打印出来的顺序不一样而已.建立和遍历的方式差不多.也分好几种方式建立,这里 就写一种,就是先序建立 #include <stdio.h> #include <stdlib.h> typedef struct TreeNode{ char ch; struct TreeNode *lchild, *rchild; }Tree,…
树和图是数据结构中比较麻烦的东西,里面涉及的概念比较多,也最有用, 就比如一般树广泛应用于人工智能的博弈上,而基于图的广度优先和深度优先搜索也广泛应用于人工智能寻路上面 首先我们要把树进行分类: >一般树:任意节点子节点个数不限 >二叉树:任意节点子节点个数大于等于0,小于等于2,也即是说0<=n<=2 >森林:N个不相交的树的集合 在讲下面之前你有必要搞懂一些概念,这里我引入一张图片并试图说明这些概念: 根:我们习惯吧最上面的A节点表示为root(根),这个概念可以与生活联…
// binary_tree 二叉树 package Algorithm import ( "reflect" ) // 二叉树定义 type BinaryTree struct { Data interface{} Lchild *BinaryTree Rchild *BinaryTree } // 构造方法 func NewBinaryTree(data interface{}) *BinaryTree { return &BinaryTree{Data: data} }…
一.基本运算符号 1.基本数学计算 +.-.*./.^.%%(求模).%/%(整除)注意:求模运算两边若为小数,则整数和小数部分分别求模.例:5.6%%2.2 2.比较运算 >.<.>=.<=.==.!= 3.逻辑运算 &.|.!.&&.||.xor注意:运算符“逻辑与”和“逻辑或”存在两种形式,“&”和“|”作用在对象中的每一个元素上并且返回和比较次数相等长度的逻辑值:“&&”和“||”只作用在对象的第一个元素上. xor为异或,两…
头文件 Seqstack.h #define maxsize 6 //const int maxsize = 6; // 顺序栈 typedef struct seqstack { int data[maxsize]; int top; // 标志栈顶位置的变量 }SeqStk; main.c #include <stdio.h> #include "Seqstack.h" // 栈的基本运算在顺序栈上的实现 // 1. 初始化 int InitStack(SeqStk *…
static final int MAXLEN = 20; //最大长度 class CBTType //定义二叉树节点类型 { String data; //元素数据 CBTType left; //左子树节点引用 CBTType right; //右子树节点引用 } CBTType InitTree() //初始化二叉树 { CBTType node; if((node=new CBTType())!=null){ //申请内存 System.out.println("请输入根节点数据&qu…
#include<stdlib.h> #include<stdio.h> #define True 1 #define False 0 typedef char TElemType; typedef struct TNode { TElemType data; struct TNode *lchild, *rchild; }TNode,*BinTree; int CreateBinTree(BinTree T) { TElemType ch; scanf("%c"…