資料結構 鏈式二叉樹

2021-09-06 09:07:31 字數 4060 閱讀 6998

#define error 0
#define

true 1

#define

false 0

/* status是函式的型別,其值是函式結果狀態**,如ok等 */
typedef

int status;

typedef

int telementtype;

#ifndef bitree_h_included
#define bitree_h_included
#include

"basic.h"

struct bitreenode;
typedef

struct bitreenode *bitreeprt;

typedef bitreeprt bitree;
typedef bitreeprt bitreepos;
/* 建立二叉樹 */
bitree createbitreehand();
bitree createbitreearray(telementtype a, int *i, int n);
/* 置空二叉樹 */
bitree makeemptybitree( bitree t );
/* 二叉樹是否為空 */
status isempytbitree( bitree t);
/* 先序 中序 後序遍歷 */
void bitreepreorder( bitree t );
void bitreeinorder( bitree t );
void bitreepostorder( bitree t );
int bitreedepth(bitree t);
#endif

#include

"basic.h"

#include

"bitree.h"

#include

#include

"fatal.h"

#include

struct bitreenode
;
bitree createbitreehand()
return t;
}
bitree createbitreearray(telementtype a, int *i, int n)
else
return t;
}
bitree makeemptybitree( bitree t )
return null;
}
status isempytbitree( bitree t)
int bitreedepth(bitree t)
}
void bitreepreorder( bitree t )
}
void bitreeinorder( bitree t )
}
void bitreepostorder( bitree t )
}

bitree t = null;
printf("\n請輸入元素,例如:1,2,-1,-1,3,-1,-1\n");
t = createbitreehand();
printf("\n先序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t), isempytbitree(t));
bitreepreorder(t);
printf("\n--end.\n\n");
printf("\n中序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t), isempytbitree(t));
bitreeinorder(t);
printf("\n--end.\n\n");
printf("\n後序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t), isempytbitree(t));
bitreepostorder(t);
printf("\n--end.\n\n");
makeemptybitree(t);

bitree t1 = null, t2 = null;
int i,n;
telementtype a1 = ;
telementtype a2 = ;
i=0;
n=7;
t1 = createbitreearray(a1, &i, n);
printf("\nt1 二叉樹\n");
printf("\n先序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t1), isempytbitree(t1));
bitreepreorder(t1);
printf("\n--end.\n\n");
printf("\n中序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t1), isempytbitree(t1));
bitreeinorder(t1);
printf("\n--end.\n\n");
printf("\n後序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t1), isempytbitree(t1));
bitreepostorder(t1);
printf("\n--end.\n\n");
makeemptybitree(t1);
i=0;
n=7;
t2 = createbitreearray(a2, &i, n);
printf("\nt2 二叉樹\n");
printf("\n先序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t2), isempytbitree(t2));
bitreepreorder(t2);
printf("\n--end.\n\n");
printf("\n中序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t2), isempytbitree(t2));
bitreeinorder(t2);
printf("\n--end.\n\n");
printf("\n後序遍歷:(高度 %d),是否為空 %d\n", bitreedepth(t2), isempytbitree(t2));
bitreepostorder(t2);
printf("\n--end.\n\n");
makeemptybitree(t2);

資料結構 鏈式二叉樹

include using namespace std typedef struct treenode treenode,treep 初始化二叉樹 void init tree treep root 前序遍歷二叉樹 void pre order treep rt 中序遍歷二叉樹 void mid o...

資料結構 鏈式二叉樹

include iostream using namespace std typedef struct treenode treenode,treep 初始化二叉樹 void init tree treep root 建立二叉樹 void creat tree treep rt 前序遍歷二叉樹 vo...

資料結構 H 鏈式二叉樹

目錄 分析順序儲存二叉樹的優缺點使用孩子法實現二叉樹 1.二叉樹的順序結構 普通的二叉樹不適合用陣列來儲存,因為可能會造成大量的空間浪費。而完全二叉樹更適合利用順序結構儲存。現實中我們通常把堆 一種二叉樹 使用順序結構的陣列來儲存,需要注意的是這裡的堆操作和作業系統虛擬程序位址空間是兩回事,乙個是資...