//二叉链表表示法
struct TreeNode {
char data;
TreeNode* lchild;
TreeNode* rchild;
};
//三叉链表表示法
struct TreeTNode {
int data;
TreeTNode* lchild;
TreeTNode* rchild;
TreeTNode* parent;
};
//双亲表示法
struct DPTNode {
char data;
int ParentIndex;
char LRFlag;
};
struct DPTree {
DPTNode node[100];
int CntNode;
int Root;//位置信息
};
/*遍历方式:
DLR(先序遍历):先根再左再右
LDR(中序遍历):先左再根再右
LRD(后序遍历):先左再右再根
A
B F
C G
D E H
先序遍历:ABCDEFGH
中序遍历:BDCEAFHG
后序遍历:DECBHGFA
*/
void preMethood(TreeNode* root) {
if (root == NULL) {
return;
}
cout << " " << root->data << " ";
preMethood(root->lchild);
preMethood(root->rchild);
}
void medMethod(TreeNode* root){
if (root == NULL) {
return;
}
medMethod(root->lchild);
cout << " " << root->data << " ";
medMethod(root->rchild);
}
void lastMethod(TreeNode* root) {
if (root == NULL) {
return;
}
lastMethod(root->lchild);
lastMethod(root->rchild);
cout << " " << root->data << " ";
}
int main() {
//二叉链表表示法
TreeNode t1, t2, t3, t4, t5,t6,t7,t8;
memset(&t1, 0, sizeof(t1));
memset(&t2, 0, sizeof(t2));
memset(&t3, 0, sizeof(t3));
memset(&t4, 0, sizeof(t4));
memset(&t5, 0, sizeof(t5));
memset(&t6, 0, sizeof(t6));
memset(&t7, 0, sizeof(t7));
memset(&t8, 0, sizeof(t8));
t1.data = 'A';
t2.data = 'B';
t3.data = 'C';
t4.data = 'D';
t5.data = 'E';
t6.data = 'F';
t7.data = 'G';
t8.data = 'H';
t1.lchild = &t2;
t1.rchild = &t6;
t2.rchild = &t3;
t3.lchild = &t4;
t3.rchild = &t5;
t6.rchild = &t7;
t7.lchild = &t8;
cout << "先序遍历:";
preMethood(&t1);
cout << endl;
cout << "中序遍历:";
medMethod(&t1);
cout << endl;
cout << "后序遍历:";
lastMethod(&t1);
cout << endl;
//双亲表示法
//DPTree tree;
A
//tree.node[0].ParentIndex = -1;
B
//tree.node[1].ParentIndex = 0;
//tree.node[1].data = 'B';
//tree.node[1].LRFlag = 'L';
C
//tree.node[2].ParentIndex = 0;
//tree.node[2].data = 'C';
//tree.node[2].LRFlag = 'R';
D
//tree.node[3].ParentIndex = 1;
//tree.node[3].data = 'D';
//tree.node[3].LRFlag = 'L';
E
//tree.node[4].ParentIndex = 2;
//tree.node[4].data = 'E';
//tree.node[4].LRFlag = 'R';
system("pause");
return 0;
}
01-05
4625
08-02
268
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交