// 二叉樹.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...