首页 / 算法 / 二叉树数据结构和算法
二叉树数据结构和算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了二叉树数据结构和算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1693字,纯文字阅读大概需要3分钟。
内容图文
![二叉树数据结构和算法](/upload/InfoBanner/zyjiaocheng/1275/662d78b4dfed45f7afdac0e2cab6b5ba.jpg)
参考:http://blog.csdn.net/dazhong159/article/details/7906916
百度面试题目: 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。 例如输入整数 22 ,如下图二元树: 10 /512 / \ 47 则打印出两条路径:10, 12和10, 5, 7。 #include <stdafx.h> #include<stdlib.h> #define MAX 20 struct BiTreeNode { int data; struct BiTreeNode *left; struct BiTreeNode *right; }; /*递归创建二叉排序树,以‘-1‘结束*/ BiTreeNode * CreateBSTree(int *data,int pos,int len) { BiTreeNode * tr; if(pos>=len) { return NULL; } else { tr = (BiTreeNode *)malloc(sizeof(BiTreeNode)); tr->data=data[pos]; tr->left = CreateBSTree(data,2*pos+1,len); tr->right = CreateBSTree(data,2*pos+2,len); return tr; } } //中序遍历二叉树 void InOrderTraverse(BiTreeNode * root) { if(root!=NULL) { InOrderTraverse(root->left); printf("%d ",root->data); InOrderTraverse(root->right); } } //打印路径 void printPath(int path[],int top) { printf("第一组:"); for(int i=0;i<top;i++) printf("%d ",path[i]); printf("\n"); } //查找和为sum的路径,path数组存放路径的值,top代表每个可行的路径中的元素个数 void findPath(BiTreeNode *root, int sum,int top,int path[]) { path[top++] = root->data; sum -= root->data; if (root->left == NULL && root->right==NULL) { if (sum == 0) { printPath(path, top); } } else { if (root->left != NULL) findPath(root->left, sum, top,path); if (root->right!=NULL) findPath(root->right, sum, top,path); } top --; sum += root->data; } int main() { int data[]={1,2,3,1,2,3,2,1,3,2,1,2,1,2,1}; int len=sizeof(data)/sizeof(int); BiTreeNode * root=CreateBSTree(data,0,len); InOrderTraverse(root); printf("\n"); int sum=6; int top=0; int path[MAX]={0}; findPath(root,sum,top,path); return0; }
原文:http://www.cnblogs.com/Deanboy/p/7636882.html
内容总结
以上是互联网集市为您收集整理的二叉树数据结构和算法全部内容,希望文章能够帮你解决二叉树数据结构和算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。