C語言資料結構——孩子兄弟表示法
任意一棵樹,它的結點的第一個孩子如果存在就是唯一的,它的右兄弟如果存在也是唯一的。因此,我們設定兩個指標,分別指向該節點的第一個孩子和此結點的右兄弟。
其中data是資料域,firstchild為指標域,儲存該節點的第一個孩子的儲存地址,rightsib是指標域,儲存該結點的右兄弟結點的儲存地址。
/*樹的孩子兄弟表示法結構的定義*/
typedef struct CSNode
{
TElemType data;
struct CSNode *firstchild,*rightsib;
}CSNode,*CSTree;
相關推薦
C語言資料結構——孩子兄弟表示法
任意一棵樹,它的結點的第一個孩子如果存在就是唯一的,它的右兄弟如果存在也是唯一的。因此,我們設定兩個指標,分別指向該節點的第一個孩子和此結點的右兄弟。 其中data是資料域,firstchild為指標域
C語言資料結構——孩子表示法
孩子表示法:把每個結點的孩子結點排列起來,以單鏈表做儲存結構,則n個結點有n個孩子連結串列,如果是葉子結點則此單鏈表為空,然後n個頭指標又組成一個線性表,採用順序儲存結構,存放一個一維陣列。 #
【資料結構週週練】016 利用遞迴演算法及孩子兄弟表示法建立樹、遍歷樹並求樹的深度
一、前言 從今天起,就給大家分享一些樹的程式碼啦,不僅僅是二叉樹,我們要弄明白,普通的樹用資料結構怎麼儲存,它有哪些操作,它可以實現哪些功能? 可能大家要問了,二叉樹不是還沒有寫完嗎,線索二叉樹呢?二叉排序樹呢?平衡二叉樹呢?大家不要急,我們通過二叉樹來入門樹的演算法及程式碼實現,然後學
【資料結構週週練】017 利用遞迴演算法及孩子兄弟表示法建立森林、遍歷森林並求森林的葉子結點個數
一、前言 從昨天起,就給大家分享一些樹和森林的程式碼啦,昨天分享的是求樹的深度,今天要給大家分享的是森林的遍歷以及求葉子的個數。 對於森林,大家可以做這樣的理解,一個深度大於1,根節點子樹個數大於1的樹去掉根節點,就是森林。森林中每棵樹的根節點再建立一個共同的雙親結點,
C語言資料結構——樹的雙親表示法
1、樹的雙親表示法: 2、/* bo6-4.c 樹的雙親表儲存(儲存結構由c6-4.h定義)的基本操作(14個) */ Status InitTree(PTree *T) { /* 操作結果: 構造空樹T */ (*T).n=0; r
C語言資料結構——一步步教會你尾插法和頭插法
連結串列也是線性表的一種,與順序表不同的是,它在記憶體中不是連續存放的。在C語言中,連結串列是通過指標相關實現的。而單鏈表是連結串列的其中一種,關於單鏈表就是其節點中有資料域和只有一個指向下個節點的指標域。 建立單鏈表的方法有兩種,分別是頭插法和尾插法。 所謂頭插法,就是按節點的
C語言資料結構——雙迴圈連結串列的插入操作順序
雙向連結串列與單鏈表的插入操作的區別 雙向連結串列因為存在前驅指標和後繼指標所以需要修改的指標多於單鏈表,但指標改動的順序同樣重要 單鏈表的插入 eg:在節點p的後面插入指標s s->next=p->next;//首先要使要插入的指標指向p->next p->next=s
C語言資料結構-二叉樹、哈夫曼、佇列小練習
原始碼地址 GitHub:https://github.com/GYT0313/C-DataStructure 1. 二叉樹 要求: 掌握二叉樹的二叉連結串列的建立方法; 掌握二叉樹的3種遍歷遞迴演算法; 掌握二叉樹的3種遍歷的非遞迴演算法。 程式
C語言資料結構與演算法之深度、廣度優先搜尋
一、深度優先搜尋(Depth-First-Search 簡稱:DFS) 1.1 遍歷過程: (1)從圖中某個頂點v出發,訪問v。 (2)找出剛才第一個被頂點訪問的鄰接點。訪問該頂點。以這個頂點為新的頂點,重複此步驟,直到訪問過的頂點沒有未被訪問過的頂點為止。 (3)返回到
c語言資料結構之順序表
c語言資料結構之順序表: 順序表的結構跟陣列比起來還是很像的,相比於連結串列,資料表的優勢主要體現在他的查詢速度上,而連結串列的優勢相反,查詢速度慢,但對於插入一個數據來說還是比較快的 下面我們就來建立一個順序表 1:定義資料型別,我定義的是一個學生的結構體型別,首
C語言-資料結構-鏈佇列
** 鏈式佇列 ** 使用兩種不同的方式作為初始化, 特點: 一種是傳遞 Init(&Q); 一種是直接P Q = create(); 我覺得還是這種的方式比較靈活,對比見程式 注:我的習慣是直接寫成標頭檔案,方便呼叫 這個程式使用的 是InitQue
線性表的建立————C語言資料結構學習
#include <stdio.h> #include <malloc.h> #define MaxSize 50 typedef int ElemType; typedef struct { ElemType data[MaxSize];
C語言資料結構——連結串列
轉自https://www.cnblogs.com/chenxiaohei/p/6862791.html /* 連結串列節點的插入與刪除 編譯環境:VC++ 6.0 編譯系統:windows XP SP3 */ #inc
C語言資料結構的簡單實驗——二叉樹的遍歷
實驗題目: 建立一株用二叉連結串列儲存的二叉樹,並對其進行遍歷。 實驗思路: 解題關鍵是要建立二叉樹,因此對語二叉樹的每一個節點,我以連結串列為儲存方式並用遞迴的思想對其進行定義。 ** 程式碼實現: ** #include<stdio.h> #in
C語言資料結構用 棧 實現進位制轉化
直接上程式碼,思路看註釋; /*棧實現進位制轉化 *十進位制最大轉化為36進位制用10(A)-35(Z)表示 */ #include<stdio.h> #include<malloc.h> #include<stdlib.h> #
C語言資料結構單鏈表之溫故而知新
拋棄繁雜的定義,以實用,實戰的角度來學習資料結構,這將使得資料結構的學習非常的簡單。前面已經學習了單鏈表的建立操作:http://blog.csdn.net/morixinguan/article/details/68951912這節,將單鏈表溫習的筆記共享出來,然後寫一個例
C語言資料結構——求二叉樹葉子結點個數
小編儲存了不少程式碼,最近新開通了CSDN部落格,以前一直看到別人的程式碼分享,深受啟發,非常感謝,所以小編現在也要將自己的程式碼分享給大家,希望大家可以與瀟小白一起在程式設計的道路上越走越遠,早日成為大佬!雖然我目前只是一名大二的學生,不過我會努力噠!加油!
C語言資料結構——分析二叉樹的相似性
程式碼比較簡單,瀟小白就直接放程式碼啦!如果有什麼問題歡迎在下方評論哦!讓我們一起進步,向大佬進發! 程式碼如下: #include <stdio.h> #include <malloc.h> #include <conio
c語言資料結構中兩個有序連結串列合併為一個新連結串列
先建立兩個連結串列La和Lb,並向La Lb中輸入值,然後再建立一個Lc,Lc指向La,具體程式碼如下: #include "stdafx.h" #include"stdio.h" #include"stdlib.h" #define OK 1 #define OVERFL
C語言資料結構-順序佇列
順序佇列 順序佇列與順序表相似,只不過其具有佇列的運算規則。資料只能從隊尾進,對頭出,為先進先出方式。 分別用兩個數來表示隊頭front和隊尾rear的位置,其只能向前增加,不能退後,這樣容易溢位且浪費空間,因此一般用迴圈佇列來表示,及佇列空間的首尾相連的,