数据结构
ychl87
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树重构
二叉树可以根据 先序和中序 或者 中序和后序进行重构。 但是不能够根据先序和后序结果进行重构。如先序为123,后序为321,这颗二叉树是不唯一的。 已知先序和中序对二叉树进行重构node* rebuildFromPreAndInOrder(char* preOrder,char *inOrder,int size) { if (size<=0) return NULL; node* r原创 2012-10-06 04:08:00 · 558 阅读 · 0 评论 -
完全二叉树的判断
利用队栈,判断是否为完全二叉树 bool isFullBiTree(node* tree) { deque q; if (!tree) return true; node* t=tree; q.push_back(t); while (!q.empty()) { t=q.front(); q.pop_front(); if (t) { q.push_bac原创 2012-10-06 20:36:23 · 529 阅读 · 0 评论 -
二叉树的基本操作
本文就二叉树的基本操作进行总结 包括二叉树的建立、递归遍历、非递归遍历、层序遍历等 二叉树的结构体如下 typedef struct _node { char data; struct _node* lchild; struct _node* rchild; }node; 1.二叉树的建立 void create(node*& tree) { char data;原创 2012-10-06 02:00:58 · 519 阅读 · 0 评论 -
二叉树深度、平衡二叉树的判断
递归求取二叉树深度 int depthBiTree(node* tree) { if (!tree) return 0; int ldepth=depthBiTree(tree->lchild); int rdepth=depthBiTree(tree->rchild); return ldepth>rdepth?ldepth+1:rdepth+1; } 平衡二叉树的判断和求二叉原创 2012-10-06 20:50:53 · 628 阅读 · 0 评论 -
二叉查找树
二叉查找树是中已经排好序的二叉树,也称二插排序树 二叉查找树的插入 void insertTree(node*& tree,char elem) //递归插入 { if (!tree) { tree=(node*)malloc(sizeof(node)); tree->data=elem; tree->lchild=NULL; tree->rchild=NULL;原创 2012-10-07 18:29:51 · 440 阅读 · 0 评论 -
二叉树最近公共父节点
在二叉树中,查找两个子节点的最近公共父节点。实现方法:首先找到每个子节点的路径,然后再比较两个路径最后一个相同节点,既最近公共父节点。 二叉树的数据结构如下 typedef struct _node { char data; struct _node* lchild; struct _node* rchild; }node; 查找子节点的路径,利用链表list来实现 bo原创 2012-10-06 02:09:46 · 663 阅读 · 0 评论
分享