데이터 구조 - 이 진 트 리 의 순서, 중간 순서, 뒤 순서 옮 겨 다 니 기
- :
-
- :
-
- //PostOrderTraverse.cpp
- //This function is to postorder BiTree
- # include <malloc.h>
- # include <iostream>
- # include <conio.h>
- # define OK 1
- # define ERROR 0
-
- using namespace std;
-
- typedef char TElemType;
-
- typedef struct BiTNode //define structure BiTree
- { TElemType data;
- struct BiTNode *lchild,*rchild;
- }BiTNode, *BiTree;
-
- int CreateBiTree(BiTree &T) //createBiTree() sub-function
- { TElemType ch;
- cout<<"Please input data (/ for NULL node!) : ";
- cin>>ch;
- if(ch=='/') T=NULL;
- else
- { if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
- { cout<<"Overflow!"; //no alloction
- return (ERROR);
- }
- T->data=ch;
- CreateBiTree(T->lchild); //create lchild
- CreateBiTree(T->rchild); //create rchild
- }
- return (OK);
- } //CreateBiTree() end
-
- int PostOrderTraverse(BiTree T) //PostOrderTraverse() sub-function
- {
- if(T)
- { if (PostOrderTraverse(T->lchild)) //traverse lchild
- if(PostOrderTraverse(T->rchild)) //traverse rchild
- { cout<<T->data<<"->"; //visite T
- return (OK);
- }
- return (ERROR);
- }
- else
- return (OK);
- } //PostOrderTraverse() end
- int CentralOrderTraverse(BiTree T)
- {
- if(T)
- { if (CentralOrderTraverse(T->lchild)) //traverse lchild
- { cout<<T->data<<"->"; //visite T
- if(CentralOrderTraverse(T->rchild)) //traverse rchild
- return (OK);
- }
- return (ERROR);
- } //if end
- else
- return (OK);
- }
- int preOrderTraverse(BiTree T)
- {
- if(T)
- { cout<<T->data<<"->"; //visite T
- if (PostOrderTraverse(T->lchild)) //traverse lchild
- if(PostOrderTraverse(T->rchild))
- return OK; //traverse rchild
- return (ERROR);
- }
- else
- return (OK);
- }
- int main() //main() function
- { BiTree T;
- cout<<endl<<endl<<"PostOrderTraverse.cpp";
- cout<<endl<<"=========================";
- cout<<endl<<endl<<"Please input data to create BiTree:"<<endl;
- CreateBiTree(T); //call CreateBiTree
- std::cout<<" :"<<endl;
- PostOrderTraverse(T);
- std::cout<<" :"<<endl;
- CentralOrderTraverse(T);
- std::cout<<" :"<<endl;
- preOrderTraverse(T);
- cout<<"End !"<<endl<<endl<<"...OK!...";
- getch();
- return 0;
- } //main()
-
-
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
양식 제출 후 제출 버튼 비활성화텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.