当前位置: 首页 > news >正文

struct * 初始化和造数据的简洁方式(二叉树,d, *left, *right)(面试)

 

node* nod = new node{20, nullptr}; 
*nod = {20, nullptr};

 

1.

c++11之后推荐用nullptr

 

2.

写法

node* ptr1;
node* ptr2, *ptr3;

强调"node*"是一个整体类型(指向node的指针)

 

但是google风格,用

node *left, node *right

 

3.

node *nod[7];

此时数组中的每个指针元素都是未初始化的野指针,而不是 “空”(nullptr

 

4.

node* nod[7]; 声明的是一个指针数组(数组元素是 node* 类型的指针),它不会执行 node 结构体的构造函数

 

 

5.

nod[2] = new node(2, nod[4], nod[5]);

不能这样写,前面nod[1]已经使用了nod[2]这个节点,new node是新分配了一个空间

 

代码:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 struct node {
 5   int d;
 6   node *left, *right;
 7   node() : d(0), left(nullptr), right(nullptr) {}
 8   node(int d, node *left, node *right) : d(d), left(left), right(right) {}
 9 };
10 
11 void init() {
12   /*
13   1 2
14   1 3
15   2 4
16   2 5
17   3 6
18   */
19   node *nod[7];
20   for (int i = 0; i < 7; i++) {
21     nod[i] = new node();
22   }
23   *nod[1] = {1, nod[2], nod[3]};
24   *nod[2] = {2, nod[4], nod[5]};
25   *nod[3] = {3, nod[6], nullptr};
26 }
27 
28 int main() {
29   init();
30   return 0;
31 }

 

http://www.hskmm.com/?act=detail&tid=9427

相关文章:

  • Android抓包
  • 火山引擎多模态数据湖:基于 Daft 与 Lance,构筑 AI 时代数据湖新范式
  • doris窗口函数 LAG()(取上一条)和 LEAD()(取下一条)函数
  • debmirror工具
  • centos7卸载openjdk-java11
  • jenkins的安装和配置
  • 深入解析:【Day 52 】Linux-Jenkins
  • 本土开发者如何选择代码管理工具?Gitee与GitHub深度对比解析
  • MES系统核心组件
  • 易基因:多组学整合分析揭示DNA甲基化与基因组改变在肿瘤进化中的协同驱动机制|Nat Genet/IF29重磅
  • AI 视频模型大比拼(2025年7月版):价格、效果与分辨率
  • 为什么芯片行业需要私有化部署软件?
  • C++ std::string
  • MathType数学公式编辑器v7.9.1
  • git常见冲突场景及解决办法 - 指南
  • 有关字节的基础知识
  • strip去符号前后对比
  • 2025 ICPC网络赛第一场 L cover
  • 文件自动同步软件用哪个好,高效选择指南
  • 【初赛】指针 - Slayer
  • 国产化FPGA-2050-基于JFMK50T4(XC7A50T)的核心板
  • hbase学习2
  • 基于Python+Vue开发的健身房管理系统源码+运行步骤
  • 2025年纷享销客生态伙伴大会无锡站圆满举办!
  • 英语_阅读_digital technology_待读
  • 达梦 两个bug json 导致数据库crash 和 优化器解析or 导致结果不一样
  • MySQL迁移至GreatSQL后,timestamp字段插入报错解析
  • 2025年文件摆渡系统哪个品牌好推荐
  • Python中使用列表、map和filter函数配合lambda表达式来操作集合
  • 大模型decoder中权重矩阵的理解 - 实践