이 진 트 리 순서 저장 소

1540 단어 데이터 구조
이 저장 구 조 는 완전 이 진 트 리 에 적용 되 며, 완전 이 진 트 리 가 아 닌 공간 낭 비 를 초래 할 수 있다.
#include 
#include 
#include 
#include 
#pragma warning (disable:4996)

#define MAX_TREE_SIZE 100
#define OK 0
#define ERROR -1
typedef int status;
typedef int elemtype;  

typedef elemtype sqbitree[MAX_TREE_SIZE];

typedef struct {
	int level;
	int order;
}position;

status initbitree(sqbitree t) {
	if (t == NULL) return ERROR;
	int i;
	for (i = 0;i < MAX_TREE_SIZE;i++)
		t[i] = 0;
	return OK;
}

status clearbitree(sqbitree t) {
	if (t == NULL) return ERROR;
	int i;
	for (i = 0;i < MAX_TREE_SIZE;i++)
		t[i] = 0;
	return OK;
}

status createbitree(sqbitree t) {  //  i>=MAX_TREE_SIZE     
	if (t == NULL)return ERROR;
	int i = 0;
	printf("          (  ),0     , 999  。   ≤%d:
", MAX_TREE_SIZE); while (1) { scanf("%d", &t[i]); if (t[i] == 999)break; if (i != 0 && t[i] != 0 && t[(i + 1) / 2 - 1] == 0) { printf(" , "); return ERROR; } i++; } while (i < MAX_TREE_SIZE) { t[i] = 0; i++; } return OK; } int bitreedepth(sqbitree t) { if (t == NULL)return -1; int i, j = -1; for (i = MAX_TREE_SIZE - 1;i >= 0;i--) if (t[i] != 0) break; i++; do { j++; }while (i >= pow(2, j)); return j; } int main() { sqbitree bt; initbitree(bt); createbitree(bt); int depth = bitreedepth(bt); printf("%d
", depth); system("pause"); }

좋은 웹페이지 즐겨찾기