用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

数据结构与算法----2.7 由二叉树的广义表形式建立二叉树的二叉链表

2019-07-21 作者: Ryan2019举报

[c++]代码库

#include <iostream>
using namespace std;
typedef char TElemType;
typedef struct BiTNode
{
    TElemType data;
	BiTNode *lc,*rc;
}*BiTree;

void CreateBiTree(BiTree &T, TElemType s[], int &i);
void CreateBiTree(BiTree &T, TElemType s[]) ;//由二叉树的广义表形式建立二叉树的二叉链表
void BiTreeLists(BiTree &T);//广义表形式输出
void Build(char s[]);

int main()
{
	BiTree T1;char s1[]="A(B(X(E,F),D),C(X(H,X),G)";
    cout<<"二叉树的广义表形式为:"<<s1<<endl;
	CreateBiTree(T1,s1);
	cout<<"二叉树(广义表形式)输出为:";
	BiTreeLists(T1);
	cout<<endl;
	return 0;
}
void CreateBiTree(BiTree &T, TElemType s[], int &i) //建立二叉树
{  
	i++;
	if (s[i] == '#') { T = NULL; return; }
	T = new BiTNode;
	T->data = s[i];    
	if (!s[i+1]||s[i+1]==','|| s[i + 1] == ')')
	{
		T->lc = NULL;	T->rc = NULL;	return;
	}
	i++;
	CreateBiTree(T->lc, s, i);
	i++;
	CreateBiTree(T->rc, s, i);
	i++;
}

void CreateBiTree(BiTree &T, TElemType s[]) 
{
	int i = -1;
	CreateBiTree(T, s, i);
}


void BiTreeLists(BiTree &T)
{
	if(!T) {cout<<'#';return;}
	cout<<T->data;
	if(T->lc ||T->rc)
	{
		cout<<'(';
		BiTreeLists(T->lc);
		cout<<',';
		BiTreeLists(T->rc);
		cout<<')';
	}
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...