第一课二叉树
来源:互联网 发布:linux下copy命令 编辑:程序博客网 时间:2024/05/18 01:24
参开书刘汝佳的《算法竞赛入门经典》6.3.2
#include<stdio.h>#include<string.h>#include<malloc.h>#define MAX_SIZE sizeof(struct Tree)typedef struct Tree{ int num; struct Tree*left,*right;}tree;tree * root;int array[100];tree* Get_tree()/*申请节点*/{ tree *p; p=(tree*)malloc(MAX_SIZE); if(p!=NULL) { p->left=NULL; p->right=NULL; } return p;}void go_to(int y,char *x){ tree*u; u=root; int i,n=strlen(x); for(i=0;i<n;i++) { if(x[i]=='L') { if(u->left==NULL) u->left=Get_tree(); u=u->left; } else if(x[i]=='R') { if(u->right==NULL) u->right=Get_tree(); u=u->right; } else { u->num=y; } }}int get_array(){ tree *u[100]; int front=0,rear=1,n=0; u[0]=root; while(front<rear) { tree*p=u[front++]; array[n++]=p->num; if(p->left!=NULL) u[rear++]=p->left; if(p->right!=NULL) u[rear++]=p->right; } return rear;}int BuildTree(){ int num; char x[50]; root=Get_tree(); for(;scanf("%s",x);) { if(!strcmp(x,"()")) break; else { sscanf(&x[1],"%d",&num); go_to(num,strchr(x,',')+1); } } return get_array();}int main(){ int i; int n=BuildTree(); for(i=0;i<n;i++) printf("%d\n",array[i]); return 0;}
0 0
- 第一课二叉树
- 树及二叉树实验第一题
- 牛客网 算法第一题 二叉树按层次打印问题
- 二叉树两个结点的第一个共同祖先
- 我的第一颗二叉链树的笔记
- 编程实现:《直通BAT面试算法精讲课》第一课:二叉树按层遍历
- 今天终于完成自己的第一个算法(非递归遍历二叉树)
- 求中序遍历序列的第一个结点值(二叉树)
- 4.6-二叉树的2个节点的第一个公共祖先节点
- 两链表的第一个公共结点->二叉树两结点的最近共同父结点
- 二叉搜索树与双向链表 【微软面试100题 第一题】
- 求二叉树中的第一条最长路径长度,并输出最长路径上的节点
- 二叉树中两个节点的第一个祖先父节点
- 二叉树、二叉堆
- 求二叉树第K层的叶子节点的个数(假设根节点是第一层)
- 给定一个二叉树和任意一个节点,求该该节点的下一层的第一个节点
- 给定一个二叉树和任意一个节点,求该该节点的下一层的第一个节点
- 《程序员面试金典》--寻找二叉树中两个节点的第一个公共祖先(三种情况)
- JDK版本不对引起的错误
- (转载)IT未来发展五大趋势
- Nginx+tomcat+Java
- HDU 1251 字典树
- 编程语言类型
- 第一课二叉树
- 个性化推荐数据产品与应用
- c++ 虚表
- Install Android SDK, Eclipse, and Emulator (AVDs)
- oracle海量数据去重方法
- 执行netca报错 core-dump
- 【android】二维码、条形码扫描——使用Google ZXing
- 移动搜索,百度的布局在“船”不在“票”
- 移动端与服务器端数据库同步