완전 이 진 트 리 체인 비 재 귀적 삽입 트 리
3531 단어 데이터 구조
struct Node{
Node*left, *right;
Node*neigh;
int data;
Node(){ left = right = neigh = NULL; }
};
Node*par[N];
struct Tree{
int size;
Node*root;
Node*lastRt; //
Node*lastLeaf; //
Tree(){ root = NULL; lastRt = lastLeaf = NULL; size = 0; }
~Tree(){
queue q;
q.push(root);
while (!q.empty()){
Node*rt = q.front(); q.pop();
if (rt == NULL)return;
q.push(rt->left);
q.push(rt->right);
delete rt;
}
}
void insert(int x){
par[x] = root;
if (root == NULL){
root = new Node;
root->data = x;
lastRt = root;
lastRt->neigh = NULL;
lastLeaf = root;
size++;
return;
}
if (lastRt->left == NULL){
lastRt->left = new Node;
lastRt->left->data = x;
lastLeaf->neigh = lastRt->left;
lastLeaf = lastLeaf->neigh;
size++;
}
else if (lastRt->right == NULL){
lastRt->right = new Node;
lastRt->right->data = x;
lastLeaf->neigh = lastRt->right;
lastLeaf = lastLeaf->neigh;
size++;
}
else{
lastRt = lastRt->neigh;
insert(x);
}
}
void show(){
queue q;
q.push(root);
while (!q.empty()){
Node*t = q.front(); q.pop();
if (t == NULL)return;
cout << t->data << " ";
q.push(t->left);
q.push(t->right);
}
}
void preshow(Node*rt){
if (rt == NULL)return;
cout << rt->data << " ";
preshow(rt->left);
preshow(rt->right);
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.