- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
(7)树的建立和遍历.cpp
资源名称:datastruct1 [点击查看]
上传用户:wxj1219
上传日期:2013-01-31
资源大小:6k
文件大小:1k
源码类别:
数据结构
开发平台:
C/C++
- #include<conio.h>
- #include<iostream.h>
- struct Node
- {
- char Data;
- Node *Left,*Right;
- };
- Node *Root=NULL;
- char LeafCount=0;
- void Create(Node *&Tree)
- {
- char Char;
- Char=getch();
- cout<<Char;
- if(Char==' ')
- Tree=NULL;
- else
- {
- Tree=new Node;
- if(Root==NULL)
- Root=Tree;
- Tree->Data=Char;
- Create(Tree->Left);
- Create(Tree->Right);
- if((Tree->Left==NULL)&&(Tree->Right==NULL))
- LeafCount++;
- }
- }
- void PreOrder(Node *Tree)
- {
- if(Tree==NULL)
- return;
- cout<<Tree->Data;
- PreOrder(Tree->Left);
- PreOrder(Tree->Right);
- }
- void PostOrder(Node *Tree)
- {
- if(Tree==NULL)
- return;
- PostOrder(Tree->Left);
- PostOrder(Tree->Right);
- cout<<Tree->Data;
- }
- void InOrder(Node *Tree)
- {
- if(Tree==NULL)
- return;
- InOrder(Tree->Left);
- cout<<Tree->Data;
- InOrder(Tree->Right);
- }
- void Exchange(Node *Tree)
- {
- Node *TempNode;
- if(Tree==NULL)
- return;
- Exchange(Tree->Left);
- Exchange(Tree->Right);
- TempNode=Tree->Left;
- Tree->Left=Tree->Right;
- Tree->Right=TempNode;
- }
- void main()
- {
- clrscr();
- Create(Root);
- cout<<endl;
- PreOrder(Root);
- cout<<endl;
- PostOrder(Root);
- cout<<endl;
- InOrder(Root);
- cout<<endl;
- Exchange(Root);
- PreOrder(Root);
- cout<<endl;
- cout<<(int)LeafCount;
- }