?? 6.70.c
字號:
6.70⑤ 如果用大寫字母標識二叉樹結點,則一棵
二叉樹可以用廣義表形式的字符序列表示。試寫一
個遞歸算法,由這種形式的字符序列,建立相應的
二叉樹的二叉鏈表存儲結構。
要求實現以下函數:
void BuildBiTree(BiTree &bt, char *s, int &i);
/* 單遍掃描廣義表形式的字符序列s, */
/* 建立相應的二叉樹bt。 */
/* i為掃描s時當前字符的序號,初值為0 */
二叉鏈表類型定義:
typedef char TElemType;
typedef struct BiTNode {
TElemType data;
BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
void BuildBiTree(BiTree &bt, char *s, int &i)
/* 單遍掃描廣義表形式的字符序列s, */
/* 建立相應的二叉樹bt。 */
/* i為掃描s時當前字符的序號,初值為0 */
{ //此處應該加入s[i]!=‘\0'判斷,但是加入后通不過
if(s[i]=='#') //懷疑是系統BUG
{bt=NULL;i++;}
else
{bt=(BiTNode*)malloc(sizeof(BiTNode));
bt->data=s[i];
i++;
if(s[i]=='(') //存在子樹
{i++; //跳過字符'('
BuildBiTree(bt->lchild,s,i); //創建左子樹
i++; //跳過字符','
BuildBiTree(bt->rchild,s,i); //創建右子樹
i++; //跳過字符')'
}//if
}//else
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -