binarytree.h
#ifndef binarytree_h_included
#define binarytree_h_included
#include #include #include #include #define maxsize 100
typedef char elemtype;
typedef struct node
btnode;
void createbtnode(btnode **b,char *str);
btnode *findnode(btnode *b,elemtype x);//查詢
int btnodedepth(btnode *b);
void dispbtnode(btnode *b);//輸出二叉樹
btnode *lchildnode(btnode *p);
btnode *rchildnode(btnode *p);
//遞迴遍歷
void preorder(btnode *b);
void inorder(btnode *b);
void postorder(btnode *b);
//非遞迴遍歷
void preorder1(btnode *b);
void inorder1(btnode *b);
void postorder1(btnode *b);
//層序遍歷
void levelorder(btnode *b);
#endif // binarytree_h_included
binarytree.c
#include "binarytree.h"
//建立二叉樹
void createbtnode(btnode **b,char *str)}}
j++;
ch=str[j];
}}//查詢節點
btnode *findnode(btnode *b,elemtype x)
}//求出高度
int btnodedepth(btnode *b)
}//輸出二叉樹
void dispbtnode(btnode *b)
}}//得到左節點
btnode *lchildnode(btnode *p)
//得到右節點
btnode *rchildnode(btnode *p)
//遞迴前序
void preorder(btnode *b)
}//遞迴中序
void inorder(btnode *b)
}//遞迴後序
void postorder(btnode *b)
}//非遞迴先序
void preorder1(btnode *b)
if (p->lchild!=null) //左孩子節點入棧
}}//非遞迴中序
void inorder1(btnode *b)
if (top>-1)
}}//非遞迴後序
void postorder1(btnode *b)
p=null;
flag=1; //表示*b的左子樹已訪問或為空
while (top!=-1 && flag==1)
else}}
while (top!=-1);
}//層序遍歷
void levelorder(btnode *b)
if (p->rchild!=null)
}}
main.c
#include "binarytree.h"
int main()
C語言 資料結構 二叉樹
一 樹的概念及結構 1.樹是一種非線性的資料結構,它是由n n 0 個有限結點組成乙個具有層次關係的集合。把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點 每個結點有零個或多個子結點 沒有父結點的結點稱為根結點 每乙個非根結點有且只有乙個父結點 除了根結點外,...
資料結構 二叉樹(c語言)
一下 是二叉樹的相關 包括二叉樹的根據前序遍歷建立二叉樹。根據前序遍歷 中序遍歷與後續遍歷依次查詢二叉樹的各個節點。include 定義二叉樹節點資料型別 typedef struct bitnode bitnode,bitree bitree為指向bitnode這種結構的指標 前序構造二叉樹函式 ...
C語言 資料結構 二叉樹
實驗報告內容 一 實驗目的 要求 1 熟練掌握二叉樹的二叉鍊錶儲存結構的建立 二叉樹的三種遍歷演算法以及基於遍歷的幾種操作的實現。2 編寫適當的主函式和相關函式,使實驗題目執行出正確結果。3 當場程式設計 除錯 編譯。4 程式具有一定的健壯性 可讀性,盡量簡潔。5 程式執行完成後分別存檔,上交實驗報...