75_树16_链式二叉树遍历具体程序演示
//程序执行有问题
#include
#include
struct BTNode
{
intdata;
structBTNode *pLchhid;//p是指针,L是左,child是孩子
structBTNode *pRchhid;
};
void PreTraverseBTree( struct BTNode * pT);
void InTraverseBTree( struct BTNode * pT);
void PostTraverseBTree( struct BTNode * pT);
struct BTNode * CreateBTree(void);
int main(void)
{
structBTNode * pT=CreateBTree();
printf("前序遍历:\n");
PreTraverseBTree(pT);
printf("中序遍历:\n");
InTraverseBTree(pT);
printf("后序遍历:\n");
PostTraverseBTree(pT);
return0;
}
struct BTNode * CreateBTree(void)
{
structBTNode * pA=(struct BTNode *)malloc(sizeof(struct BTNode ));
structBTNode * pB=(struct BTNode *)malloc(sizeof(struct BTNode ));
structBTNode * pC=(struct BTNode *)malloc(sizeof(struct BTNode ));
structBTNode * pD=(struct BTNode *)malloc(sizeof(struct BTNode ));
structBTNode * pE=(struct BTNode *)malloc(sizeof(struct BTNode ));
pA->data='A';
pB->data='B';
pC->data='C';
pD->data='D';
pE->data='E';
pA->pLchhid=pB;
pA->pRchhid=pC;
pB->pLchhid=pB->pRchhid=NULL;
pC->pLchhid=pD;
pC->pRchhid=NULL;
pD->pLchhid=NULL;
pD->pRchhid=pE;
pE->pLchhid=pE->pRchhid=NULL;
returnpA;
}
void PreTraverseBTree( struct BTNode * pT)
{
if(pT!=NULL)
{
printf("%c\n",pT->data);
if(NULL!=pT->pLchhid)
{
PreTraverseBTree(pT->pLchhid);
}
if(NULL!=pT->pLchhid)
{
PreTraverseBTree(pT->pRchhid);
}
//pT->pLchhid可以代表整个左子树
}
}
void InTraverseBTree( struct BTNode * pT)
{
if(pT!=NULL)
{
if(NULL!=pT->pLchhid)
{
InTraverseBTree(pT->pLchhid);
}
printf("%c\n",pT->data);
if(NULL!=pT->pLchhid)
{
InTraverseBTree(pT->pRchhid);
}
//pT->pLchhid可以代表整个左子树
}
}
void PostTraverseBTree( struct BTNode * pT)
{
if(pT!=NULL)
{
if(NULL!=pT->pLchhid)
{
PostTraverseBTree(pT->pLchhid);
}
if(NULL!=pT->pLchhid)
{
PostTraverseBTree(pT->pRchhid);
}
printf("%c\n",pT->data);
//pT->pLchhid可以代表整个左子树
}
}
76_树17_5种常用排序概述和快速排序详细讲解
排序:
冒泡
插入
选择
快速排序
归并排序
排序和查找的关系:
排序是查找的前提,排序是重点
77_树18_再次讨论什么是数据结构
研究的是数据的存储和数据的操作的一门学问。
数据的存储分为两类:
分体的存储
个体关系的存储
从某个角度而言,数据的最核心的就是个体关系的存储,个体的存储可以忽略不计。
78_树19_再次讨论到底什么是泛型
同一种逻辑结构,无论该逻辑结构物理存储是什么样子的,我们可以对它执行相同的操作。