博客
关于我
双向链表
阅读量:579 次
发布时间:2019-03-11

本文共 1803 字,大约阅读时间需要 6 分钟。

            #include 
const int N = 100010;
int l[N], r[N], idx, e[N];
void init() {
idx = 2;
r[0] = 1;
l[1] = 0;
void dele(int k) {
l[r[k]] = l[k];
r[l[k]] = r[k];
void add(int k, int x) {
e[idx] = x;
l[r[k]] = idx;
r[idx] = r[k];
l[idx] = k;
r[k] = idx;
idx++;
int main() {
init();
int n;
cin >>
while(n--) {
int k, x;
string a;
cin >>
if(a == "L") {
cin >>
add(0, x);
} else if(a == "D") {
cin >>
dele(k+1);
} else if(a == "R") {
cin >>
add(l[1], x);
} else if(a == "IR") {
cin >>
k >>
x >>
add(k+1, x);
} else if(a == "IL") {
cin >>
k >>
x >>
add(l[k+1], x);
}
for(int i = r[0]; i != 1; i = r[i]) {
// ignore the ends
cout << e[i] << " ";
}

上述代码表示一个实现二叉树操作的C++程序。程序中定义了一个动态二叉树的数据结构,使用数组来维护左右指针和节点值。主要操作包括插入节点和删除节点,节点的插入和删除操作支持在树的左侧、中间和右侧进行。程序的核心流程包括初始设置、输入处理和树的遍历输出。

代码功能涵盖了二叉树的主流操作,能够实现按左、右以及插入和删除操作。输出部分采用了逆序遍历的方式输出节点的信息,具体输出逻辑需要通过程序运行后才能具体查看。

转载地址:http://otitz.baihongyu.com/

你可能感兴趣的文章
跟着燕青学分布式事务控制技术方案
查看>>
Activiti视频分享
查看>>
VS2019 报错: LINK Error 无法找到 MSCOREE.lib的解决办法
查看>>
2021-04-23
查看>>
hadoop 分布式文件系统的计算和高可用
查看>>
【Linux】VMware Workstation 不可恢复错误: (vcpu-0)
查看>>
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
查看>>
关于Img标签在固定宽高的容器内部以图片比例缩放存在
查看>>
ant design pro v5去掉右边content区域的水印
查看>>
web_求和(练习)
查看>>
JavaScript——使用iterator遍历迭代map,set集合元素
查看>>
IAR调试卡顿的解决办法
查看>>
Course Schedule II
查看>>
Django ORM操作
查看>>
京喜小程序体验评分优化实践
查看>>
C#中文转换成拼音
查看>>
C++错误笔记
查看>>
【无线通信模块】GPRS DTU不稳定和容易掉线原因
查看>>
CSS(六)|页面布局之定位
查看>>
比特币(BSV)知识库:网络-比特币测试用区块链(Bitcoin Test Blockchains)
查看>>