二叉树的二叉链表存储结构构建以及先序遍历
生活随笔
收集整理的這篇文章主要介紹了
二叉树的二叉链表存储结构构建以及先序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR -1
typedef int TElemType, Status;
typedef struct BiTNode
{TElemType data;struct BiTNode *lchild, *rchild;;
}BiTNode, *BiTree;Status CreateBiTree(BiTree &T)
{//按先序次序輸入二叉樹中的結點的值(一個字符), #表示空樹//構造二叉鏈表表示的二叉樹Tchar ch;scanf("%c", &ch);if (ch == '#'){T = NULL;return OK;}else{T = (BiTree)malloc(sizeof(BiTNode));T->data = ch;CreateBiTree(T->lchild); //遞歸創建左子樹CreateBiTree(T->rchild); //遞歸創建右子樹}}Status PreOrderTraverse(BiTree T)
{//先序遍歷二叉鏈表結構存儲的二叉樹T,每訪問到一個結點輸出其值if (T != NULL){printf("%c",T->data);PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild); //交換這三條語句的順序可以實現先、中、后序遍歷return OK;}return OK;
}void main()
{BiTree T;CreateBiTree(T);PreOrderTraverse(T);return;
}
總結
以上是生活随笔為你收集整理的二叉树的二叉链表存储结构构建以及先序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go 的des加解密
- 下一篇: 图的邻接矩阵表示与最短路径算法( Dij