1. 程式人生 > >二叉樹的連結表示

二叉樹的連結表示

 #include<stdlib.h>
#include<stdio.h>

typedef int DataType;

struct BinTreeNode;                   
typedef  struct BinTreeNode *PBinTreeNode;

struct BinTreeNode {
    DataType  info;                       
    PBinTreeNode llink;              
    PBinTreeNode rlink;                    
};

typedef
  struct BinTreeNode  *BinTree;

typedef  BinTree  *PBinTree;

PBinTreeNode root_btree(PBinTree t) {
    return *t;
}

PBinTreeNode leftChild_btree (PBinTreeNode p) {
    return p->llink;
}

PBinTreeNode rightChild_btree (PBinTreeNode p) {
    return p->rlink;
}

PBinTreeNode createRest_BTree() {
    PBinTreeNode  pbnode;
    char
ch;
    scanf("%c", &ch);
    if(ch == '@') pbnode = NULL;
    else {
        pbnode = (PBinTreeNode )malloc(sizeof(struct BinTreeNode));
        if( pbnode == NULL )         {
            printf("Out of space!/n");
            return pbnode;
        }
        pbnode->info = ch;
        pbnode->llink =
createRest_BTree(); 
        pbnode->rlink = createRest_BTree(); 
    }
    return pbnode;
}

PBinTree  create_BTree( void ) {
    PBinTree pbtree;
    pbtree = (PBinTree)malloc(sizeof(BinTree));
    if (pbtree != NULL)
        *pbtree = createRest_BTree( );  
    return pbtree;
}


int main(){
return 0;
}

相關推薦

陣列表示法,連結串列表示法,中序遍歷

/* 輸出結果: [1]=5 [2]=2 [3]=9 [4]=1 [5]=4 [6]=7 [10]=3 [12]=6 [13]=8 1 2 3 4 5 6 7 8 9 */ #include <stdio.h> #include <malloc.h>

HNUST-1047 表示

pro ... pac using 數據結構 base str 一行 發現 1047: 二叉樹的表示 時間限制: 1 Sec 內存限制: 128 MB提交: 4 解決: 4[提交][狀態][討論版] 題目描述 ?DJ非常癡迷於數據結構,二叉樹是他最喜歡的結

建立一棵用連結串列方式儲存的,並對其進行遍歷(先序,中序和後序),列印輸出遍歷結果

題目如下 程式碼如下 #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct Node//結構體 {

-連結串列儲存結構及其簡單演算法

適用於層次結構的資料(大部分演算法用遞迴思想) #include <stdio.h> #define Max 100 結構體 typedef struct TNode{ int data; struct Node * lchild;//左孩子結點

資料結構複習——表示及遍歷

一、常用概念 1.一棵有N個結點的樹有N-1條邊 2.結點的度:結點的子樹個數 3.樹的度:樹的所有結點中最大的度數 4.一棵樹採用  firstChild-nextSibling 表示方法可以轉換為

連結串列結構實現

拿一段以前老師的程式碼 二叉樹的功能/操作: 1、初始化 2、清空 3、構建二叉樹 4、前、中、後序遍歷二叉樹 5、二叉樹的深度 學習二叉樹的時候,非常要注意的是,形參是二級指標。 前中後序遍歷的遞迴演算法,要好好理解。 老師的這個程式碼,個人覺得好在求

連結表示

 #include<stdlib.h>#include<stdio.h>typedef int DataType;struct BinTreeNode;                   typedef  struct BinTreeNode *P

連結串列表示法實現

本程式實際上是構建了一顆二叉排序樹,程式最後輸出構建數的中序遍歷。 程式碼實現: #include <stdio.h> #include <stdlib.h> typede

java數據結構之三叉鏈表示

按層遍歷 postorder while ldl 字符串 param pub link 根節點 三叉鏈表示的二叉樹定義所畏的三叉鏈表示是指二叉樹由指向左孩子結點、右孩子結點、父親結點【三叉】的引用(指針)數據和數據組成。 package datastructure.t

根據廣義表建立對應(子女兄弟鏈表表示)並由輸出對應廣義表(子女兄弟鏈表表示)的C++非遞歸實現

ios blog null new 根節點 span name creat nullptr 根據輸入的廣義表建立子女右兄弟鏈的二叉樹表示,該二叉樹對應於廣義表對應的普通樹。先考慮更復雜的情形,如果廣義表中存在共享表,則將其轉換為帶共享子樹的二叉樹表示,每一共享子樹帶有附加頭

資料結構 筆記-5 線索 以及 線索連結串列

線索二叉連結串列 線索二叉連結串列 來自於 二叉連結串列。一個二叉連結串列,如果存放n個結點,就一定有n+1個空指標域,而線上索鏈 表中,就讓這n+1個空指標域有了用武之地。 空指標域 用於存放 某種遍歷順序下的 前驅或者後繼的地址。   已知 一棵二叉樹的結構:

[leetcode] 114. 展開為連結串列

114. 二叉樹展開為連結串列 這個題描述不清啊 一開始看描述每太明白題意,對著給出的樣例做的 實際上就是: 將右子樹接到左子樹的最右邊的葉子節點上 將左子樹接到root的右兒子上 把root的左兒子置空 class Solution { public void

[leetcode]114. Flatten Binary Tree to Linked List將展成一個連結串列

Given a binary tree, flatten it to a linked list in-place. For example, given the following tree: 1 / \ 2 5 / \ \ 3 4 6 The flattened

劍指offer系列(十) 中和為某一值的路徑,複雜連結串列的複製,

二叉樹中和為某一值的路徑 題目描述 輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,陣列長度大的陣列靠前) 解題思路: 深度優先遞迴遍歷樹, 把結點加入

劍指offer系列——刪除連結串列中重複的結點,的下一個結點,對稱的

刪除連結串列中重複的結點 題目描述 在一個排序的連結串列中,存在重複的結點,請刪除該連結串列中重複的結點,重複的結點不保留,返回連結串列頭指標。 例如,連結串列1->2->3->3->4->4->5 處理後為 1->2->5 解題思路:

的結構體表示【摘抄自嚴長生老師的網站】

採用鏈式儲存 typedef struct BiTNode{ TElemType data;//資料域 struct BiTNode *lchild,*rchild;//左右孩子指標 }BiTNode,*BiTree; 若需訪問父節點,可如下表示 typedef str

Leetcode:114. 展開為連結串列

給定一個二叉樹,原地將它展開為連結串列。 例如,給定二叉樹 1 / \ 2 5 / \ \ 3 4 6 將其展開為: 1 \ 2 \ 3 \ 4 \ 5 \

劍指Offer36:與雙向連結串列的轉換

題目: 輸入一顆二叉搜尋樹,將該二叉搜尋樹轉換成一個排序的雙向連結串列。要求不能建立任何新的節點,只能調整樹中節點指標的指向。 例如: 分析過程: 1.指標的調整: 原先指向左子節點的指標,變成指向上一節點的指標 原先指向右子節點的指標,變成指向下一節點的指標 2.調整思路: 對於

連結串列儲存

節點形態: 實現: /****************************************** 二叉樹的二叉連結串列儲存 by Rowandjj 2014/5/18 ****************************************

Leetcode 114. 展開為連結串列 C++

文章目錄 題目描述 遞迴法 方法一 方法二 非遞迴法 題目描述 遞迴法 方法一 這種方法,不太容易理解。第一步就是遞迴,後面才是對基本情況的處理。通過遞迴,直接