《資料結構教程》(第5版)李春葆 學習筆記(四)

2021-08-19 09:50:28 字數 896 閱讀 8728

#include #includeusing namespace std;

typedef char elemtype;

const int maxsize=100;

typedef struct nodebtnode;

//建立二叉樹

void createbtree(btnode *&b,elemtype *str)

}} }}

//計算二叉樹的所有結點數

int nodes(btnode *b)

//輸出二叉樹的所有葉子結點

void displeaf(btnode *b)

} //求二叉樹中結點值為x的結點的深度

int level(btnode* b,elemtype x,int h)

} //求二叉樹中第k層的結點個數

void lnodenum(btnode* b,int h,int k,int &n)

}} //輸出值為x的結點的所有祖先

bool ancestor(btnode* b,elemtype x)

else return false;

}}}

int main() {

elemtype str="a(b(d(,g)),c(e,f))";

btnode* b;

createbtree(b,str);

elemtype x;

cin>>x;

ancestor(b,x);

/* int k,n=0;

cin>>k;

lnodenum(b,1,k,n);

cout<>x;

int h=level(b,x,1);

if(h==0) cout<<"二叉樹中沒有節點值為"《不妥之處,請多多指教。

《資料結構教程》(第5版)李春葆 學習筆記(二)

include include includeusing namespace std typedef char elemtype 宣告鏈棧的型別 typedef struct linknodelinkstnode 初始化棧 void initstack linkstnode s 銷毀棧 void d...

《資料結構教程》(李春葆 主編)課後習題 2 4

2.4 設計乙個演算法,將乙個帶頭節點的資料域依次為a1,a2,an n 3 的單鏈表的所有節點逆置,即第乙個節點的資料域變為an,最後乙個節點的資料域變為a1。思路 我是直接在原煉表上操作,當然也可以建立乙個陣列儲存鍊錶的資料,然後再倒序放回原鍊錶。答案 1 void invert linklis...

資料結構教程 李春葆版(總結)之排序 交換排序

本文的主要內容來自資料結構教程 李春葆版,由 你是木頭人 博主進行總結。性質 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時即進行交換,直到沒有反序的元素為止。氣泡排序 穩定 typedef struct rectype void bubblesort rectype r,int n rect...