2020考研数据结构 顺序二叉树操作

本文探讨2020年考研中数据结构的主题——顺序二叉树操作。在顺序存储结构中,为了保持二叉树的性质,通常从数组下标1开始存储结点,避免在0下标位置存储导致的性质冲突问题。
摘要由CSDN通过智能技术生成

注意:

       在顺序存储结构显然要从数组下标1开始存储树种的结点,如果从数组下标0开始储存,则不满足二叉树的性质(比如结点A储存在0下标位置上,则无法根据其性质来计算孩子结点在数组中的位置)


#include<stdio.h>
#include<stdlib.h>
#define maxSize 100
typedef char ElemType;
 /*顺序二叉树*/
typedef struct STree{
	ElemType  bitTree[maxSize];
	int pointer; 
}STree; 
/*初始化*/
void Init_STree(STree &T){
	for(int i=0;i<maxSize;i++)
		T.bitTree[i]='0';
		T.pointer=0;
		
}
/*插入根结点*/
int Insert_root(STree &T,ElemType e){
	T.bitTree[1]=e;
	T.pointer++; 
}
/*插入左结点*/

int Insert_left(STree &T,int i,ElemType e) {//在某个i结点的左孩子插入元素e 
	if(i>=maxSize||i<1) {
		printf("插入结点不符合二叉树性质要求\n");
		return -1;
	}
	T.bitTree[(i+1)*2]=e;
	T.pointer++;
	return 1;
}
/*插入右键点*/
int Insert_right(STree &T,int i,ElemType e){//在某个i结点的右孩子插入元素 e
	 if(i>=maxSize||i<1) {
		printf("插入结点不符合二叉树性质要求\n");
		return -1;
	}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值