給出一個字符串形式表達的二叉樹,求出指定節點深度

給出一個字符串形式表達的二叉樹,求出指定節點深度。

輸入的樹形結構字符串格式爲:

1、以父節點、左子樹、右子樹表示的二叉樹;每個父節點不會超過兩個子節點;

2、樹的每一個節點採用單個字母表示;樹的層次採用數字表示,樹根的層次爲1,下一層爲2,不會超過9層;

3、字符串以“節點名稱 層次數 節點名稱 層次數…”的形式出現,同一個父節點下,先出現的爲左子樹。

例如字符串“a1b2c2d3e3f3”生成一棵如下的樹:

         a

       /   \

      b     c

     / \   / 

    d   e f     

節點a的深度爲3,節點b的深度是2,節點f的深度是1

輸入:一行字符串,表示一個二叉樹。一行字符串,一個字符一個節點,輸入確保字符不會存在重複節點

輸出:指定節點的深度,如果節點不存在,返回0;整數之間用空格隔開

例如:

輸入:a1b2c2d3e3f3

ab

輸出:3 2

#include<iostream>
#include<string>
using namespace std;

int main()
{	
	string str,user_str;
	getline(cin,str);
	getline(cin,user_str);
	int len=str.size();
	int user_len=user_str.size();
       int maxDepth=atoi(&str[len-1]);//最大的深度;
	for (int i=0;i<user_len;i++)
	{
		char user_tmp=user_str[i];
		for(int j=0;j<len;j++)
		{
			if (user_tmp==str[j])
			{
				int position=atoi(&str[++j]);
				cout<<maxDepth-position+1<<" ";
				break;
			}
			if (j==len-1)
			{
				cout<<0<<" ";
				break;
			}
		}
	}
	cout<<endl;
	system("pause");
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章