#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define max_tree_size 100
typedef struct ptnode;
typedef structptree;
/**二叉樹
1/ \
2 3
\ \
4 5/6
a[10]=;
**//**
雙親表示法
r/ | \
a b c
/ \ |
d e f
/|\g h k
0 r -1
1 a 0
2 b 0 *
3 c 0
4 d 1 *
5 e 1 *
6 f 3
7 g 6 *
8 h 6 *
9 k 6 *
標*的為葉子節點
*//*
void createtree(ptree *t)}*/
void init_ptree(ptree &tree)
void add_ptnode(ptree &tree,ptnode ptnode)
void print(ptree &tree)}*/
void pre(ptree &tree, int num)
//前序遍歷
}for(int j=0;j<=tree.count;j++)
}return cot;
}int findnode(ptree &tree)
}for(int j=0;j<=tree.count;j++)
return cot;}/*
int treedepth(ptree *t)
if(max>ptnode.data>>ptnode.parent)
cout<<"結點數目"cout<<"遞迴法查詢樹的深度" for(int l=0;lmaxdeep=max(maxdeep,te); }cout<<"for迴圈查詢樹的深度" }/*** 測試樣例,輸入##停止 r -1 a 0b 0 c 0d 1 e 1f 3 g 6h 6 k 6## */ 之前學習樹多是採用鍊錶的,在羊村捕羊的演算法上,採用了線性儲存,為此學習一下。雙親表示法區別於,鍊錶,是用線性陣列來存放樹的。既然是線性的,就用一維陣列來完成,開始想法是,每個陣列的元素為乙個結構體。typedef struct node n,pn 再用乙個結構體將這個線性陣列的資訊包含起來 typ... 演算法思想 將這兩個節點的所有祖先節點從下至上依次存放到兩個陣列中,然後遍歷這兩個陣列,第乙個相等的值便是所求值。include define maxsize 100 typedef struct ptnode ptnode 樹的節點結構 typedef struct ptree ptree 樹pt... 新增鏈結描述 按照上述部落格,測試了一下這個程式.有兩點說說明一下.首先,博主說使用c語言,我第一次用.c檔案編譯,出現error expected or before token 這是使用了引用 而在c語言中沒有引用的概念,在c語言中是取位址符號.後期改為.cpp檔案即可執行 第二點就是 fflu...樹的雙親表示法
樹的雙親表示法
樹的孩子雙親表示法