二叉樹的基本操作

2021-07-02 04:10:13 字數 2122 閱讀 8228



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

//#include "stdafx.h"

#include "malloc.h"

#include

#include

typedef struct bitnode//二叉樹結點

bitnode,*bitree;

/鏈式棧

typedef struct  //鏈式棧

listack;

void initstack(listack &s)

bool stackempty(listack s)

void push(listack &s,bitnode* &p)

bool pop(listack &s,bitnode* &p)

;bool gettop(listack s,bitnode* &p)

///鏈式佇列///

typedef struct// 鏈式佇列

liqueue;

void initqueue(liqueue &q)

bool queueempty(liqueue q)

void enqueue(liqueue &q,bitnode* &p)

bool dequeue(liqueue &q,bitnode* &p)

void initbit(bitree &t)

void createbit(bitree &t,int key,int &i,int n)//先序建立二叉樹

//i表示當前被新增的結點序號 0~n-1;

if(idata=key[i++];

createbit(t->lchild,key,i,n);

createbit(t->rchild,key,i,n);}}

}void visit(bitnode *p)

void preorder(bitree t)

}void inorder(bitree t)

}void postorder(bitree t)

}void preorder2(bitree t)//先序非遞迴演算法

else}}

void inorder2(bitree t)//中序非遞迴演算法

else}}

void postorder2(bitree t)//後序遍歷非遞迴

else

else

//else

}//else}}

void levelorder(bitree t)

}int sumbitdegree2(bitree t,int &sum)

return sum;

}int sumleaf(bitree t,int &sum)//葉子結點個數

return sum;

}int bitheight(bitree t,int &height)

return height;

}int nodelevel(bitree t,int key,int &level,bool &flag)

else

}return level;

}int _tmain(int argc, _tchar* argv)

;int i=0;

createbit(t,key,i,18);

preorder(t);

printf("\n");

inorder(t);

printf("\n");

//int sum=0;

sumbitdegree2(t,sum);

printf("度為2的結點個數:%d\n",sum);

/sum=0;

sumleaf(t,sum);

printf("葉子結點個數:%d\n",sum);

/int height=0;

bitheight(t,height);

printf("二叉樹的高度%d\n",height);

//int level=0;bool flag=false;

int node=8;

nodelevel(t,node,level,flag);

printf("結點%d所在層次為%d\n",node,level);

return 0;

}

二叉樹基本操作

tree.h ifndef tree h define tree h include typedef int element 定義二叉樹 typedef struct nodetreenode void preorder treenode root 遞迴前序遍歷 void inorder treen...

二叉樹基本操作

一.二叉樹的定義 二.二叉樹的建立 定義一棵無資料的二叉樹 6 int left size 7 int right size 為了操作簡便,我們定義一棵不需要儲存資料的二叉樹,只要能儲存節點之間的邏輯關係就行,所以用兩個陣列來表示。left i 第i個節點的左子節點的序號 right i 第i個節點...

二叉樹基本操作

include include define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 j ch str j btnode f...