————按数据大小顺序打印
#include
using namespace std;
typedef int DATA; struct SNode //除根结点之外的节点{ DATA data; SNode* pRight,*pLeft; public: SNode(DATA data):data(data) { pRight=pLeft=NULL; } };
SNode* g_pRoot=NULL;//在全局区定义一个跟节点void PriOrder(SNode* p)//中序遍历函数,,,左根右{if(p->pLeft){PriOrder(p->pLeft);} coutdata getchar();
if(p->pRight){PriOrder(p->pRight);} }
void SetAt(DATA data) { SNode* pNew=new SNode(data); SNode* p=g_pRoot;
while(data!=p->data)//数据大小不同于根节点数据大小,,,进入循环{ if(datadata)//小于根节点的数据放在左边{ if(!p->pLeft)//左边为空,直接放在左边p->pLeft=pNew; else p=p->pLeft;//左边有数据了,就往左边的左边走} if(data>p->data)//大于根节点数据的放在右边{ if(!p->pRight) p->pRight=pNew; else p=p->pRight; } }
} int main() { SNode* p=new SNode(3);//在堆上申请一个节点,里面的数据是3 g_pRoot=p;
SetAt(19); SetAt(1); SetAt(18); SetAt(7); PriOrder(g_pRoot);
return 0; }
后记:对于大部分转行的人来说,找机会把自己的基础知识补齐,边工作边补基础知识,真心很重要。
“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有