加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构实验之二叉树七:叶子问题

发布时间:2020-12-15 04:50:59 所属栏目:百科 来源:网络整理
导读:数据结构实验之二叉树七:叶子问题 Time Limit:?1000 ms Memory Limit:?65536 KiB Problem Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。 Input ?输入

数据结构实验之二叉树七:叶子问题

Time Limit:?1000 ms Memory Limit:?65536 KiB

Problem Description

已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。

Input

?输入数据有多行,每一行是一个长度小于50个字符的字符串。

Output

?按从上到下从左到右的顺序输出二叉树的叶子结点。

Sample Input

abd,

xnl,i,u,

Sample Output

dfg

uli

题目链接:

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2711/pid/3346

#include

using namespace std;

int top;

char str[51];

typedef struct treenode{

char s;

struct treenode *leftnode;

struct treenode *rightnode;

}node;

node *create()

{

top++;

node *root;

if(str[top]==',')

return NULL;

else

{

root=new node;

root->s=str[top];

root->leftnode=create();

root->rightnode=create();

}

return root;

}

void leave(node *root)

{

int in=0,out=0;

node *dl[66];

dl[in++]=root;

while(in>out)

{

if(dl[out])

{

if(!dl[out]->leftnode&&!dl[out]->rightnode)

cout << dl[out]->s;

dl[in++]=dl[out]->leftnode;

dl[in++]=dl[out]->rightnode;

}

out++;

}

cout << endl;

}

int main()

{

while(cin >> str)

{

top=-1;

node *root=create();

leave(root);

}

return 0;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读