2.2 二叉树的存储结构

2.2 二叉树的存储结构_哔哩哔哩_bilibili

 

// 二叉树的顺序存储
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

#define MaxSize 10
 
typedef struct TreeNode{
   char data; //数据元素
   bool isEmpty; //结点是否为空
}TreeNode;

main(){
   TreeNode t[MaxSize];
   t[1].data='A';
   t[2].data='B';
   t[3].data='C';
   for(int i=1;i<=3;i++){
       printf("%c ",t[i].data);
   }
   return 0;
}

 

// 二叉树的链式存储
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

//二叉树结点定义
typedef struct BiTNode{
   char data; //结点数据
   struct BiTNode *lchild; //左孩子指针
   struct BiTNode *rchild; //右孩子指针
}BiTNode, *BiTree;

int main(){
    //插入根节点
    BiTree root=(BiTNode*)malloc(sizeof(BiTNode));
    root->data='A';

    //插入lchild
    BiTree p=(BiTNode*)malloc(sizeof(BiTNode));
    p->data='B';
    root->lchild=p;
    
    //插入rchild
    p=(BiTNode*)malloc(sizeof(BiTNode));
    p->data='C';
    root->rchild=p;
    
    printf("%c ",root->data);
    printf("%c ",root->lchild->data);
    printf("%c ",root->rchild->data);    
    return 0;
}

 

posted @ 2026-09-23 07:02  董晓  阅读(19)  评论(0)    收藏  举报