数据结构_二叉树基础
2015-04-16 22:14
381 查看
数据结构真心不是盖的啊!现在觉得为什么公司面试和笔试,1/3的重点都处在这上面。真行不容易啊,并且很容易检测出一个人的实力到底如何。
不要把二叉树想的很复杂,其实就是链表的升级版(毕竟学渣,认识的太肤浅了,没事,反正是写给自己看的)。汗~~~~
不要把二叉树想的很复杂,其实就是链表的升级版(毕竟学渣,认识的太肤浅了,没事,反正是写给自己看的)。汗~~~~
<span style="font-size:12px;">//二叉树的链式存储结构 //既然是链式,那么无非就是使用链表的形式进行存储 typedef struct node { int data; struct node * lchild, * rchild; }BiTNode, * BiTree; //特殊的三叉链表存储 typedef struct node { int data; struct node * lchild, * rchild, * parent;//parent指向它的上级节点(双亲节点) }BiTNode, * BiTree; //创建带有头结点的二叉树,其实就是用了它的左孩子 BiTree InitBiTree() { BiTNode * head = new BiTNode; if(!head) return NULL;//申请失败 else head->rchild = NULL;//头结点是左孩子指向根节点 return head; } //创捷只含根节点的二叉树,其余节点可以通过插入实现 BiTree createRoot(int value) { BiTNode * rootNode = new BiTNode; if(!rootNode) return NULL; else { rootNode->data = value; rootNode->lchild = NULL; rootNode->rchild = NULL; } return rootNode; } //在某节点插入左孩子 BiTree insertLchild(int value, BiTree root, BiTree curNode) { BiTNode * temp = new BiTNode; if(curNode == NULL) { cout<<"当前没有节点可插人"<<endl; return NULL; } temp->data = value; if(curNode->lchild == NULL)//当前节点没有左孩子 { curNode->lchild = temp; } else { //将当前节点的左孩子作为新插入节点的左孩子 temp->lchild = curNode->lchild; curNode->lchild = temp; } return root; } //删除某节点的左孩子,注意删除后相应的该节点的左子树也被删除了 BiTree deleteLchild(BiTree root, BiTree curNode) { BiTNode * temp; if(curNode== NULL || curNode->lchild == NULL) { cout<<"没有可删除对象"<<endl; return NULL; } else { temp = curNode->lchild; curNode->lchild = NULL; delete temp; } return root; } //同理右孩子跟左孩子类似 int main() { BiTree head = NULL, root = NULL; head =InitBiTree(); root = createRoot(1); head->lchild = root; root = insertLchild(2, head, root); root = insertLchild(3, head, root->lchild); getchar(); return 0; } 又来点废话,发现什么没,为什么没有显示二叉树的内容,这就放到下一章二叉树的遍历(面试|笔试 必考)。 </span>
相关文章推荐
- 基础数据结构-二叉树-赫夫曼树的解码(详解)
- 一步一步复习数据结构和算法基础-层次建立层次遍历二叉树
- 数据结构--二叉树的基础操作上
- 基础数据结构----二叉树
- 数据结构和算法 (二)数据结构基础之树、二叉树
- 【数据结构】- 二叉树基础操作
- 一步一步复习数据结构和算法基础-二叉树基本操作
- 基础数据结构-二叉树-赫夫曼树的解码(详解)
- 经典计算机基础数据结构:二叉树
- 【数据结构】树与二叉树 基础要点+二叉树 Python 实现
- 基础数据结构-二叉树-赫夫曼树的解码(详解)
- 【数据结构】二叉树基础知识
- 数据结构基础之二叉树的转换
- 算法基础---数据结构---树和二叉树
- 基础简单的数据结构-C语言-二叉树链表构造
- 黑马程序员--Java基础之二叉树数据结构和泛型
- 数据结构 JAVA描述(四) 树与二叉树基础
- 数据结构-二叉树基础题目小结(遍历,求节点数目等等)
- 重学数据结构系列之——二叉树基础
- 数据结构基础 后序遍历和中序遍历还原二叉树