【资料结构】堆积树(阵列法) 未完成

说明

晚点补

程式码

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#define MAX 10int index = 1,tree_arr[MAX] = {0},top = 1,stack[MAX] = {0};int main() {  basic();  print();}

函式

void Inorder_stack(int index):以中序输出阵列树,透过递迴秀出

晚点补

void Inorder_stack(int index) {  if (tree_arr[index] != 0) {    if (index * 2 <= MAX) {      Inorder_stack(2 * index);    }    if (tree_arr[index] != 0) {      stack[++top] = tree_arr[index];    }    if (index * 2 + 1 <= MAX) {      Inorder_stack(2 * index + 1);    }  }}

int creat_arr(int num) :晚点补

int creat_arr(int num) {  if (check_re(num) == true) {    printf("重複");    return 0;  }  if (index > MAX) {    printf("堆叠已满");    return 0;  }  int new_index = index;  tree_arr[index] = num;  printf("%d=>%d\n", index, tree_arr[index]);  if (index % 2 == 1 && tree_arr[index] > tree_arr[index - 1] &&      index / 2 > 1) {    printf("%d:%d vs %d:%d\n", index,tree_arr[index],index-1, tree_arr[index - 1]);    int n = tree_arr[index];    tree_arr[index] = tree_arr[index - 1];    tree_arr[index - 1] = n;  }  while (tree_arr[index] > tree_arr[index / 2] && index != 1) {    // printf("%d vs %d", tree_arr[index], tree_arr[index / 2]);    int n = tree_arr[index];    tree_arr[index] = tree_arr[index / 2];    tree_arr[index / 2] = n;    index /= 2;  }  index = new_index;  index += 1;  return 1;}

结果

晚点补


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章