下面是树类型题目需要用到的头文件tree.h,请包含在cpp文件中编译,而不是放在c文件中编译,比如查找树中两个节点的最低公共父结点的题common_parent_in_tree.cpp,编译它的方法是:

g++ -g common_parent_in_tree.cpp -o common_parent_in_tree

下面是tree.h的内容:

#include <stdio.h>
#include <vector>struct TreeNode{int value;std::vector<TreeNode*> vec_children;
};TreeNode* CreateTreeNode(int value){TreeNode* pNode = new TreeNode();pNode->value = value;return pNode;
}void ConnectTreeNodes(TreeNode* pParent, TreeNode* pChild){if(pParent != NULL){pParent->vec_children.push_back(pChild);}
}void PrintTreeNode(TreeNode* pNode){if(pNode != NULL){printf("value of this node is: %d\n", pNode->value);printf("its children is as the following");std::vector<TreeNode*>::iterator i = pNode->vec_children.begin();while(i < pNode->vec_children.end()){if(*i != NULL)printf("%d\t", (*i)->value);}printf("\n");}else{printf("this node is null.\n");}printf("\n");
}void PrintTree(TreeNode* pRoot){PrintTreeNode(pRoot);if(pRoot != NULL){std::vector<TreeNode*>::iterator i = pRoot->vec_children.begin();while(i < pRoot->vec_children.end()){PrintTreeNode(*i);++i;}}
}void DestroyTree(TreeNode* pRoot){if(pRoot != NULL){std::vector<TreeNode*>::iterator i = pRoot->vec_children.begin();while(i < pRoot->vec_children.end()){DestroyTree(*i);++i;}delete pRoot;}
}

tree类型题目需要用到的头文件tree.h相关推荐

  1. BST(binary search tree)类型题目需要用到的头文件binary_tree.h

    下面是二叉搜索树需要用到的头文件binary_tree.h #include <stdio.h>struct BinaryTreeNode{int value;BinaryTreeNode ...

  2. 链表类型题目需要用到的头文件list.h

    下面是后面链表相关题目中需要用到的链表结点的定义和相关操作函数,参见下面的list.h文件: 注意链表结点的定义采用cpp的定义方式,它会被cpp的文件调用.比如后面删除链表重复结点的文件del_re ...

  3. c语言中引用头使用什么指令,在源文件(.c)和头文件(.h)中声明和定义的区别——C语言...

    最近在看多文件编程的时候遇到的一个问题,本来以为理解了声明和定义的区别(然而并没有····),也算是重新认识了一次声明和定义,下面上代码 声明和定义:有分配空间的叫定义,没分配空间的叫声明 定义:表示 ...

  4. 头文件setjmp.h

    头文件<setjmp.h>定义了宏setjmp,并且为了绕过正常的函数调用和返回规则声明了一个函数和一个类型. 1.类型jmp_buf 它是一个数组类型,适合存储恢复一个调用环境所需的信息 ...

  5. 【C++】C++中的头文件(.h)—详解(2)

    接上... [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 头文件中写些什么 在上篇博客中写到头文件本身不参与编译,但是它们被包含到源文件中 ...

  6. 【C++】C++中的头文件(.h)—详解(1)

    [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 之前写过一篇<C++中头文件的使用>,那篇文章主要讲述C++中头文件的使用 ...

  7. C11头文件threads.h声明了创建和管理线程,信号,条件变量的函数

    作者Danny Kalev 是通过以色列系统分析师协会认证的系统分析师, 并且是专攻C++的软件工程师. Kalev 写了多本C++的书籍,同时给不同的软件开发者站点投搞C++文章. 他是C++标准委 ...

  8. C语言两个同名头文件,C lang: C语言中两个头文件引入相同的头文件(Header.h)

    C lang: C语言中两个头文件引入相同的头文件(Header.h) C lang: C语言中两个头文件引入相同的头文件(Header.h) [var1] For example: Header.h ...

  9. PE格式的定义头文件winnt.h

      PE格式定义的主要地方位于我们的头文件winnt.h,这个头文件中几乎能找到关于PE文件的所有定义.   在很多编译器.调试器中都会带有这个头文件,如VC++6.0.codeblocks.Olly ...

最新文章

  1. BZOJ 2138 stone(霍尔定理推论,线段树)【BZOJ 修复工程】
  2. STM32 HAL库详解 及 手动移植
  3. python3 安装opencv_Page20-opencv的编译与安装
  4. 技术人员如何创业《四》- 打造超强执行力团队(转载)
  5. Android APK 打包过程 MD
  6. runtime无法执行grep_如何使管道使用Runtime.exec()?
  7. 日语学习-多邻国-平假名4
  8. js底部广告飘窗代码
  9. redis系列二: linux下安装redis
  10. vb3计算机,2014年计算机二级考试VB试题 3
  11. IOS逆向-LLVM、代码混淆
  12. 怎么把Word文档转换成长图
  13. java写入到excel表格乱码怎么办,数据库导出excel表格是乱码-java导出excel表格乱码!...
  14. 初中数学抽象教学的案例_初中数学教学案例与反思
  15. ajax前端分页实现
  16. java 前置系统报文通讯方式_银行核心与前置系统的区别
  17. 链队的创建、入队、出队
  18. 酒店网站建设需要多少钱
  19. 华为畅享max有没有人脸识别_华为畅享Z有指纹识别吗?支持人脸识别解锁吗
  20. BZOJ-4811: [Ynoi2017]由乃的OJ (树链剖分 线段树维护区间操作值 好题)

热门文章

  1. android 线程list.add,ListenableWorker 中的线程处理
  2. MySQL 学习笔记(15)— 连接查询(内连接、左外连接、右外连接、全外连接、交叉连接、自然连接等)
  3. Linux 启动详解之init
  4. VS中C#读取app.config数据库配置字符串的三种方法(转)
  5. 利用Spring AOP与JAVA注解为系统增加日志功能
  6. List and ArrayList
  7. 除了java还学什么_学好Java编程除了努力还需要具备什么?
  8. 2018会考计算机成绩查询入口,2018年山东会考成绩查询时间及入口
  9. java signature 性能_Java常见bean mapper的性能及原理分析
  10. mysql启用keepalive_keepalive+mysql 主主配置