트 리 는 확장 순서 에 따라 이 진 트 리 와 비 재 귀적 사 이 를 만 듭 니 다.
2199 단어 잡다 한 문제
#include
#include
using namespace std;
struct node
{
char data;
node *leftchild;
node *rightchild;
};
void Create(node *&p)//
{
char ch;
cin>>ch;
if (ch=='#')
p=NULL;
else
{
p=new node;
p->data=ch;
Create(p->leftchild);
Create(p->rightchild);
}
}
void PreOrder(node *root)
{
stacks;
node *p;
s.push(NULL);
p=root;
while(!s.empty())
{
if (p==NULL)
break;
cout<data<rightchild!=NULL)// ,
s.push(p->rightchild);
if (p->leftchild!=NULL)// ,
p=p->leftchild;
else// ,
{
p=s.top();
s.pop();
}
}
}
void PosrOrder(node *root)// ( , , ), , , , , ,
// , , , , , ,
{
node *p=root;
stacks;
while(p||!s.empty())// , ( ), p , p , , p ,
{
if (p)
{
s.push(p);
p=p->leftchild;
}
else// ,
{
p=s.top();
s.pop();
cout<data<rightchild;
}
}
}
int main()
{
node *root;
Create(root);
cout<
제 가 먼저 옮 겨 다 니 는 코드 가 복잡 하 다 는 것 은 의심의 여지 가 없습니다.
void PreOrderTraverse(BTNode *T, Status (*visit)(ElementType e))
{
BTNode *stack[MAX_SIZE], *p;
int top = -1;
if(T != NULL) {
stack[++top] = T;
while(top > -1)
{
p = stack[top--];
visit(p->data);
if(p->rchild != NULL)
{
stack[++top] = p->rchild;
}
if(p->lchild != NULL)
{
stack[++top] = p->lchild;
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
bzoj 3289 Mato 의 파일 관리 (모 팀 알고리즘 + 구간 역순 수)1. 나무 모양 배열 로 역순 수 를 구한다.그 사고방식 은 트 리 배열 의 각 노드 에 대응 하 는 구간 이 있 고 각 노드 는 표 시 된 아래 표 시 된 구간 안의 숫자 (또는 노드 아래 표 시 된 숫자 보다 작...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.