c语言二叉树的头文件叫什么,西安交大朱站立数据结构——使用C语言》头文件系列——二叉树.doc...
西安交大朱站立數據結構——使用C語言》頭文件系列——二叉樹
本文為二叉鏈存儲結構的二叉樹操作實現,實現了二叉樹的定義、插入數據、刪除數據、撤銷以及二叉樹的打印、前序遍歷、中序遍歷、后序遍歷等。本項目工程包含2個頭文件(BiTree.h、BiTreeTraverse.h)和一個源文件(BiTree.cpp)。
頭文件1,,,,,,,,,,,,,,,,BiTree.h
typedef,,,,,,,,struct,,,,,,,,Node
{
DataType,,,,,,,,data;//數據域
struct,,,,,,,,Node,,,,,,,,*leftChild;//左子樹指針
struct,,,,,,,,Node,,,,,,,,*rightChild;//右子樹指針
}BiTreeNode;//結點的結構體定義
/*初始化創建二叉樹的頭結點*/
void,,,,,,,,Initiate(BiTreeNode,,,,,,,,**root)
{
*root=(BiTreeNode,,,,,,,,*)malloc(sizeof(BiTreeNode));
(*root)->leftChild=NULL;
(*root)->rightChild=NULL;
}
/*若當前結點curr非空,在curr的左子樹插入元素之為x的新結點*/
/*原curr所指結點的左子樹成為新插入結點的左子樹*/
/*插入成功則返回新插入結點的指針,否則返回空指針*/
BiTreeNode,,,,,,,,*InsertLeftNode(BiTreeNode,,,,,,,,*curr,DataType,,,,,,,,x)
{
BiTreeNode,,,,,,,,*s,*t;
if(curr==NULL),,,,,,,,return,,,,,,,,NULL;
t=curr->leftChild;/*保留原curr所指結點的左子樹指針*/
s=(BiTreeNode,,,,,,,,*)malloc(sizeof(BiTreeNode));
s->data=x;
s->leftChild=t;/*新插入結點的左子樹為原curr的左子樹*/
s->rightChild=NULL;
curr->leftChild=s;/*新結點成為curr的左子樹*/
return,,,,,,,,curr->leftChild;/*返回新插入結點的指針*/
}
/*若當前結點curr非空,在curr的右子樹插入元素之為x的新結點*/
/*原curr所指結點的右子樹成為新插入結點的左子樹*/
/*插入成功則返回新插入結點的指針,否則返回空指針*/
BiTreeNode,,,,,,,,*InsertRightNode(BiTreeNode,,,,,,,,*curr,DataType,,,,,,,,x)
{
BiTreeNode,,,,,,,,*s,*t;
if(curr==NULL),,,,,,,,return,,,,,,,,NULL;
t=curr->rightChild;/*保留原curr所指結點的右子樹指針*/
s=(BiTreeNode,,,,,,,,*)malloc(sizeof(BiTreeNode));
s->data=x;
s->rightChild=t;/*新插入結點的右子樹為原curr的左子樹*/
s->leftChild=NULL;
curr->rightChild=s;/*新結點成為curr的右子樹*/
return,,,,,,,,curr->rightChild;/*返回新插入結點的指針*/
}
void,,,,,,,,Destory(BiTreeNode,,,,,,,,**root)
{//二叉樹撤銷操作
if((*root)!=NULL,,,,,,,,&&,,,,,,,,(*root)->leftChild!=NULL)
Destory(&(*root)->leftChild);
if((*root)!=NULL,,,,,,,,&&,,,,,,,,(*root)->rightChild!=NULL)
Destory(&(*root)->rightChild);
free(*root);
}
/*若curr非空,刪除curr所在結點的左子樹*/
/*刪除成功則返回刪除結點的雙親指針,否則返回空*/
BiTreeNode,,,,,,,,*DeleteLeftTree(BiTreeNode,,,,,,,,*curr)
{
if(curr==NULL||curr->leftChild==NULL),,,,,,,,return,,,,,,,,NULL;
Destory(&curr->leftChil
總結
以上是生活随笔為你收集整理的c语言二叉树的头文件叫什么,西安交大朱站立数据结构——使用C语言》头文件系列——二叉树.doc...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小波包能量matlab,小波包分析和小波
- 下一篇: @Transactional事务不生效问