【每日一题-16】重建二叉树&C模拟实现C++继承多态

2023-05-16

由前序遍历和中序遍历重建二叉树

void reBuildTree(vector<int> pre, int begin1, int end1, \
				 vector<int> in, int begin2, int end2)
{
	if (pre.size() != in.size())
		return ;
	int mid = begin2;
	while (begin1 < end1)
	{
		mid++;
		if (pre[begin1] == in[mid])
			break;
	}
	reBuildTree(pre, begin1++, end1, in, begin2, mid - 1);
	reBuildTree(pre, begin1++, end1, in, mid + 1, end2);
}
C语言模式实现C++继承和多态。 
分析:C实现一个struct A和struct B各包含一个int成员a和b,要求达到B继承了A的效果,也就是B里面包含一个A。并且能达到多态的效果,也就是一个A*p指向A调的是A的函数,指向B调用的是B的函数。
typedef void(*FUNC);

struct A
{
	FUNC f;		//通过结构体的嵌套实现类之间的继承
	int a;
};
struct B
{
	A _a;
	int b;
};
void funA()
{
	printf("funA\n");
}
void funB()
{
	printf("funB\n");
}

void fun(A* ptr)
{
	ptr->f();
}

int main()
{
	A a;
	B b;
	a.f = funA;
	b._a.f = funB;
	fun(&a);
	fun((A*)&b);
	system("pause");
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【每日一题-16】重建二叉树&C模拟实现C++继承多态 的相关文章

  • 【面试题】字符串旋转

    题目描述 xff1a 给定一个字符串aabcd要求将其左旋两位 xff08 即旋转后变成bcdaa xff09 代码实现 xff1a span style font size 18px include lt stdio h gt inclu
  • linux下的crond&&crontab

    基本概念 1 crond和crontab是不可分割的 xff0c crontab是一个命令 xff0c 常用于Unix Linux系统之中 xff0c 用于设置周期性被执行的指令 2 crontab命令常用于从标准输入设备中读取指令 xff
  • 终端与作业控制

    strong span style font family none font size 24px 进程组 span strong span style font family none font size 18px 1 简单来说进程组就是
  • mac手册汉化 2019

    1 安装依赖 brew install automake brew install opencc 2 编译 wget https github com man pages zh manpages zh archive v1 6 3 3 ta
  • 守护进程&创建

    守护进程 守护进程也称为精灵进程 xff0c 是一种运行在后台的特殊进程 和其他后台进程所不同的是 xff0c 它始终独立其他会话 xff0c 自成会话组 xff0c 不受系统登录和注销的影响 xff0c 一般都是7 24小时在后台运行的
  • 智能指针剖析&模拟

    要学习智能指针之前需要先了解一下什么叫RAII xff1f 所谓RAII就是运行时初始化 xff0c 具体的实现就是定义一个类来封装运行资源的分配和释放工作 xff0c 在构造函数中进行资源的分配 xff0c 在析构函数中进行资源的回收工作
  • 代理服务器与NAT技术

    1 1 简介 1 1 1 名词解释 公有IP地址 xff1a 也叫全局地址 xff0c 是指合法的IP地址 xff0c 它是由NIC xff08 网络信息中心 xff09 或者ISP 网络服务提供商 分配的地址 xff0c 对外代表一个或多
  • 【网络】网络基础知识总结

    谈到网络 xff0c 首先就需要知道计算机网络中的两个参考模型 xff0c 即OSI参考模型 与TCP IP参考模型 OSI参考模型 OSI xff08 Open System Interconnect xff09 xff0c 即开放式系统
  • 【程序员面试宝典】数组相关面试题

    1 像素翻转 有一副由NxN矩阵表示的图像 xff0c 这里每个像素用一个int表示 xff0c 请编写一个算法 xff0c 在不占用额外内存空间的情况下 即不使用缓存矩阵 xff0c 将图像顺时针旋转90度 给定一个NxN的矩阵 xff0
  • 浅析TCP协议中的各种定时器

    TCP在建立连接之后可能会启动四个定时器 重传计时器 xff1a Retransmission Timer 坚持计时器 xff1a Persistent Timer 保活计时器 xff1a Keeplive Timer 时间等待计时器 xf
  • 【程序员面试宝典】字符串相关面试题

    1 确定字符互异 请实现一个算法 xff0c 确定一个字符串的所有字符是否全都不同给定一个string iniString xff0c 请返回一个bool值 True代表所有字符全都不同 xff0c False代表存在相同的字符 保证字符串
  • 【程序员面试宝典】链表相关面试题

    1 链表中的第k个节点 题目描述 xff1a 输入一个链表 xff0c 输出该链表中倒数第k个结点 struct ListNode span class hljs built in int span val struct ListNode
  • 【网络】网络端口号分类

    在开始之前有必要先说一下为什么要网络要对对端口号进行细分 xff0c 而像常见的端口号之间又是什么东西 xff0c 有什么作用 xff0c 为什么要学习端口号相关的知识 xff0c 带着这些疑问 xff0c 下面开始今天知识的学习 在我学习
  • TCP协议中的URG和PSH位

    相关背景知识 http blog csdn net double happiness article details 74025156 在探讨TCP协议中的URG和PSH控制位时 xff0c 我们先来简单的复习一下TCP协议 URG xff
  • 问答QA(一)综述

    声明 xff1a 本文是综合网上问答系统介绍 xff0c 做的总结 xff0c 如有侵权 xff0c 请联系处理 xff0c 谢谢 一 问答系统架构 1 1 问题分析模块 负责对用户的提问进行处理 xff1b 生成查询关键词 xff08 提
  • 【程序员面试宝典】栈和队列相关面试题

    1 集合栈 题目描述 xff1a 请实现一种数据结构SetOfStacks xff0c 由多个栈组成 xff0c 其中每个栈的大小为size xff0c 当前一个栈填满时 xff0c 新建一个栈 该数据结构应支持与普通栈相同的push和po
  • 【程序员面试宝典】栈的应用

    1 下一个较大元素 现在我们有一个int数组 xff0c 请你找出数组中每个元素的下一个比它大的元素 给定一个int数组A及数组的大小n xff0c 请返回一个int数组 xff0c 代表每个元素比他大的下一个元素 若不存在则为 1 保证数
  • time_wait与面试的暧昧

    背景知识 TCP三次握手与四次挥手 http blog csdn net double happiness article details 70160738 time wait是什么 xff1f 通过上面三次握手和四次挥手的学习 xff0c
  • 【通信方式五】socket编程之TCP通信

    1 网络字节序 网络字节序就是熟知的关于大小端的问题 xff0c 关于前面的大小端的判断方法 xff0c 以及代码实现再此就不在赘述 xff0c 下面只谈网络中的字节序问题 xff08 如何判定当前机器的大小端 xff1a http blo
  • 【通信方式六】socket编程之UDP通信

    相关博客 通信方式五 socket编程之TCP http blog csdn net double happiness article details 74938008 由于TCP协议是可靠的面向连接的协议 xff0c 因此在服务器端需要执

随机推荐