資料結構 二叉樹的構建與遍歷

2021-08-14 18:07:07 字數 1653 閱讀 3001

c++實現二叉樹的構建與遍歷

二叉樹資料示例:a(b(,d),c(e(g),f))

**:

// 二叉樹.cpp: 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include#include#includeusing namespace std;

#define maxsize 100

char gnodestring[100];

class node //結點類

;node::node(char data, int deep, node *initf, node *initl, node *initr)

//方便後面的**初始化node

class btree //二叉樹類

;btree::btree()

btree::~btree()

void btree::createbtree() //二叉樹的構建

else

break;

case ',':

i++;

workinp = workinp->father;

newnode = new node(gnodestring[i], workinp->deep + 1, null, null, null);

workinp->rchild = newnode;

newnode->father = workinp;

workinp = workinp->rchild;

break;

case ')':

workinp = workinp->father;

break;

} }}node * btree::getroot()

void btree::visit(node * searchp)

void btree::preorder(node * searchp)

}void btree::inorder(node * searchp)

}void btree::postorder(node * searchp)

}void btree::nrpreorder(node * searchp)

//依次移向左兒子

if (top <= 0)

return;

else

//依次出棧並指向右兒子 }}

void btree::nrinorder(node * searchp)

if (top <= 0)

return;

else

}}void btree::nrpostorder(node * searchp)

; stackdata stack[maxsize];

node *pnow;

int top = -1, sign;

pnow = searchp;

while (!(pnow == null && top == -1))

else

else

}} return;

}void readdata()

gnodestring[--index] = '\0';

} else //沒有該檔案 }

int main()

mysql 遍歷二叉樹 資料結構 二叉樹遍歷

這篇博文主要是研究二叉樹遍歷的遞迴與非遞迴演算法,有興趣的小夥伴可以了解下!二叉樹的遞迴遍歷 深度優先遍歷 先來張圖,看看各結點遍歷時的情況 二叉樹深度優先遍歷總結 分別為第一次,第二次,第三次進入某個結點 先序遍歷 先訪問根結點,然後先序遍歷左子樹,最後先序遍歷右子樹 根 左 右 中序遍歷 先中序...

資料結構 遍歷二叉樹

資料結構實驗之二叉樹二 遍歷二叉樹 time limit 1000ms memory limit 65536kb submit statistic problem description 已知二叉樹的乙個按先序遍歷輸入的字串行,如abc,de,g,f,其中,表示空結點 請建立二叉樹並按中序和後序的方...

資料結構 遍歷二叉樹

二叉樹的遍歷原理 二叉樹的遍歷是指從根節點出發,按照某種次序以此訪問二叉樹所有節點,使得每個節點被訪問一次且僅被訪問一次 二叉樹遍歷方法 1.前序遍歷 規則是若二叉樹為空,則空操作返回,否則先訪問根節點,然後前序遍歷左子樹,再前序遍歷右子樹 2.中序遍歷 規則是若樹為空,則空操作返回,否則從根節點開...