尚学堂百战程序员之二叉树

尚学堂百战程序员之二叉树
2018年06月01日 09:58 独一无二的楠竹

————按数据大小顺序打印

#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行业的聚集地。"

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部