社区
C语言
帖子详情
请教一道考研数据结构题
hxtx
2003-10-21 09:49:44
已知二叉树的中序和后序遍历序列存放在数组in[]和post[]中,试编一个算法创建这棵二叉树。
...全文
50
12
打赏
收藏
请教一道考研数据结构题
已知二叉树的中序和后序遍历序列存放在数组in[]和post[]中,试编一个算法创建这棵二叉树。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fztx
2003-10-28
打赏
举报
回复
我写出了!
#include "iostream.h"
#include "malloc.h"
#include "string.h"
typedef struct node{
char data;
struct node *lc,*rc;
}btree;
btree *build_btree2(char *ppos,char *ipos,int n)
{
btree *ptr;
char *rpos;
int k;
if(n<=0)return NULL;
ptr=(btree *)malloc(sizeof(btree));
ptr->data=*ppos;
ptr->lc=ptr->rc=NULL;
for(rpos=ipos;rpos<ipos+n;rpos++)
if(*rpos==*ppos)break;
k=rpos-ipos;
ptr->lc=build_btree2(ppos+n-k,ipos,k);
ptr->rc=build_btree2(ppos+1,rpos+1,n-k-1);
return ptr;
}
void daozuan(char a[],int n)
{
int i=0,j=n-1,char t;
while(i<=j){
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
}
}
void post(btree *root)
{
if(root){
post(root->lc);
cout<<root->data<<" ";
post(root->rc);
}
}
void main()
{
btree *root;
char a[]="cbeda";
char b[]="bcaed";
daozuan(a,strlen(a));
root=build_btree2(a,b,strlen(a));
post(root);
cout<<endl;
}
bobob
2003-10-28
打赏
举报
回复
对基本功要求很强,不过很容易理解啊
由中序得到根结点,把数组post分成左右子树
递归
jakeye
2003-10-28
打赏
举报
回复
懒的想,但只要了解中序和后序的遍历方法,就不难写出来,但要注意数组的下标.
eliza007
2003-10-22
打赏
举报
回复
从中序知道根节点,从后序知道左右子树
panzhaoping
2003-10-21
打赏
举报
回复
数据结构真好。
ZhangYv
2003-10-21
打赏
举报
回复
由先中序列恢复一棵确定的二叉树,并对其做后序遍历的输出,要点是如何控制传递数组的下标的值.
中后序还原也一样,树是可以根据此唯一递归定义的:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 100
typedef struct node
{
char info;
struct node *llink,*rlink;
}TNODE;
char pred[MAX],inod[MAX];
TNODE *restore(char *,char *,int);
void postorder(TNODE *);
main(int argc,char * *argv)
{
TNODE *root;
if(argc<3)
exit(0);
strcpy(pred,argv[1]);
strcpy(inod,argv[2]);
root=restore(pred,inod,strlen(pred));
postorder(roor);
printf("\n\n");
}
TNODE *restore(char *ppos,char *ipos,int n)
{
TNODE *ptr;
char *rpos;
int k;
if(n<=0)
return NULL;
ptr=(TNODE*)malloc(sizeof(TNODE));
ptr->info=*ppos;
for(rpos=inpos;rpos<ipos+n;rpos++)
if(*rpos==*ppos)
break;
k=rpos-ipos;
ptr->llink=restore(ppos+1,ipos,k);
ptr->rlink=restore(ppos+1+k,rpos+1,n-1-k);
return ptr;
}
void postorder(TNODE *ptr)
{
if(ptr==NULL)return;
postorder(ptr->llink);
postorder(ptr->rlink);
printf("%c",ptr->info);
}
langzi8818
2003-10-21
打赏
举报
回复
先把这个二叉树画出来,在创建就好的多了
aflyinghorse
2003-10-21
打赏
举报
回复
李春保的 数据结构习题与解析中以有这题的解答
rocllllll
2003-10-21
打赏
举报
回复
快了,我正复习到这,估计过几天就可以了
不过,兄弟,还是要自己来的,总是问别人是不行的
我现在包括C和数据结构一起复习,感觉已经上路了
目前正在前进中...
tibetan
2003-10-21
打赏
举报
回复
基本思路是用低归。
从中序中知道左子树,从后续中就可以知道左字书对应的右子树。就这样。
loveisbug
2003-10-21
打赏
举报
回复
教材里有思路的吧。
hxtx
2003-10-21
打赏
举报
回复
上面朋友写的是由先序和中序建立。
由先序和中序建立我也会(李春葆书上写的)
关键是由中序和后序如何建立?
C语言版
数据结构
主讲老师hwdong具有几十年211某大学的
数据结构
课程教材经验,是该校第一批精品课程的
数据结构
课程的主持人。hwdong在课程教学上不同于一般的讲师,擅长深入浅出、化难为易,使难懂的概念、原理或算法变得简单易懂。在生活节奏如此快的紧张生活中,故意废话啰嗦忽悠浪费别人时间、谋财害命,hwdong的教学风格就是全程干货无废话、在尽可能短的时间里输出最可能多的干活,在youtube(频道hwdong)、B站(hw-dong)的课程深受广大网友的喜欢和好评,大家可以去观看评论。《
数据结构
》是计算机学科的主干基础课,主要介绍基本的
数据结构
、典型算法及其应用。该课程是计算机专业最重要的承前启后的核心课程,它既提供编写规范的程序的理论基础和实践指导,又是进一步学习其他如操作系统、编译原理、软件工程、人工智能、计算机网络等软硬件课程的基础,是开发各种软件、研究算法的最核心基础。熟悉
数据结构
是合格程序员的基本内功,从硅谷的google、facebook等到国内的BAT企业招聘软件算法人员的面试
题
几乎都是
数据结构
与算法。本课程包括:线性表、栈和队列、字符串、多维数组、树和二叉树、图、查找、优先队列和堆、排序等,还将包括面向
考研
和求职面试的
数据结构
刷
题
。课程特点:化难为易,使复杂难懂的问
题
变得简单易懂。用动画演示执代码过程,避免空洞的讲解,原理和代码实现结合,避免大多数教学只讲原理不知实现的通病。内容丰富,无废话和抖机灵,直指核心。课程内容将长期更新,力求精益求精。
数据结构
+算法面试100
题
他们决定这么分: 抽签决定自己的号码(1、2、3、4、5) 首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时, 按照他的方案进行分配,否则将被扔进大海喂鲨鱼 如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决, 当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼。那就, 连续来几组微软公司的面试
题
,让你一次爽个够: ====================== 97.第1组微软较简单的算法面试
题
1.编写反转字符串的程序,要求优化速度、优化空间。
微软等
数据结构
+算法面试100
题
全部答案集锦
微软等
数据结构
+算法面试100
题
全部答案集锦 作者:July、阿财。 时间:二零一一年十月十三日。 引言 无私分享造就开源的辉煌。 今是二零一一年十月十三日,明日14日即是本人刚好开博一周年。在一周年之际,特此分享出微软面试全部100
题
答案的完整版,以作为对本博客所有读者的回馈。 一年之前的10月14日,一个名叫July (头像为手冢国光)
数据结构
面试100
题
引言 无私分享造就开源的辉煌。 今是二零一一年十月十三日,明日14日即是本人刚好开博一周年。在一周年之际,特此分享出微软面试全部100
题
答案的完整版,以作为对本博客所有读者的回馈。 一年之前的10月14日,一个名叫July (头像为手冢国光)的人在一个叫csdn的论坛上开帖分享微软等公司
数据结构
+算法面试100
题
,自此,与上千网友一起做,一起思考,一起解答这些面试
题
目,最终...
微软公司等
数据结构
+算法面试100
题
(第1-100
题
)全部出炉
微软等公司
数据结构
+算法面试100
题
(第1-100
题
)首次完整亮相 作者:July、2010年12月6日。更新:现今,这100
题
的答案已经全部整理出来了,微软面试100
题
2010年版全部答案集锦:http://blog.csdn.net/v_july_v/article/details/6870251。关于此100道面试
题
的所有一切详情,包括答案,资源
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章