求助!全紫,绷不住了
  • 板块灌水区
  • 楼主我是歌者
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/8/9 15:55
  • 上次更新2024/8/9 16:37:55
查看原帖
求助!全紫,绷不住了
566190
我是歌者楼主2024/8/9 15:55

二叉树搜索

题目描述

输入一串二叉树,输出其前序遍历。

输入格式

第一行为二叉树的节点数 nn。(1≤n≤261 \leq n \leq 26)

后面 nn 行,每一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点必为根节点。

空节点用 * 表示

输出格式

二叉树的前序遍历。

样例 #1

样例输入 #1

6
abc
bdi
cj*
d**
i**
j**

样例输出 #1

abdicj

就是这么一道b题目

#include<bits/stdc++.h>
using namespace std;
int n,head[10000],e[10000],ne[10000],idex;
int add(int x,int y){
	e[idex]=y;
	ne[idex]=head[x];
	head[x]=idex++;
	
}
bool vis[10000];
string a;
int idx;
queue<int> q;
void dfs(int x){
	if(x==(int)'*'||vis[x]==true){
		return;
	}
	q.push(x);
	vis[x]=true;
	dfs((int)e[ne[head[x]]]);
	dfs((int)e[head[x]]);
	return;
}
int main(){
	int n;
	cin>>n;
	memset(head,-1,sizeof(head));
	string x;
	cin>>x;
	add((int)x[0],(int)x[1]);
	add((int)x[0],(int)x[2]);
	for(int i=1;i<n;i++){
		cin>>a;
		add((int)a[0],(int)a[1]);
		add((int)a[0],(int)a[2]);
	}
	dfs((int)x[0]);
	while(!q.empty()){
		int a=q.front();
		q.pop();
		cout<<(char)a;
	}
}

我这一份代码全部RE 真的很难绷 求大佬解惑

2024/8/9 15:55
加载中...