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

说明

晚点补

程序码

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int 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;
}

结果

晚点补


<<:  【资料结构】二元搜寻树:添加节点

>>:  LinkServer function 不允许远端函数参考

【Day 18】深度学习(Deep Learning)--- Tip(三)

昨天提到了ReLU还有它的一些variant,那接下来要讲的是另外一个更进阶的想法,叫做Maxou...

Day 30 | 完赛感言

连续30天发文,一开始觉得很漫长,但没想到很快的就来到了尾声! 透过这个比赛,学到了许多东西(虽然听...

Day 09 Summary

Introduction to embedded system Components and app...

OOCSS 基础介绍 DAY39

OOCSS 也是一种设计模式 它强调两点 结构与样式分离 容器与内容分离 在我们介绍 容器与内容分离...

Day 5 | Fragment

Fragment(碎片)是Activity中可重复利用的使用者介面,必须依附於Activity,因此...