二叉树的创建及成员函数的实现

本文实现了二叉树的创建及其成员函数的实现 成员函数包括: 1)构造函数 2)拷贝构造函数 3)赋值运算符重载 4)先序遍历(先根遍历) 5)中序遍历 6)后序遍历(后根遍历) 7)层序遍历 8)节点个数 9)叶子节点个数 10)二叉树深度 二叉树的实现: #pragma once #incl...

2016-04-20 18:04:23

阅读数 3336

评论数 0

c++中各类继承下的对象模型

c++中多态的实现我们都知道,c++中的多态是在虚函数的基础上实现的,用指向派生类的基类指针调用派生类(或基类)中自己的成员函数。那么,具体是怎么实现的呢?其实它是通过虚函数表来实现的,虚函数表是保存虚函数地址的一张表,若一个类中有虚函数,当程序运行时,编译器通过在虚函数表中查找相应的虚函数的地址...

2016-04-11 20:04:32

阅读数 505

评论数 0

c++动态内存管理

我们都知道在c++中可以用new/malloc动态分配内存空间用delete/free释放动态开辟的内存空间。c++中的malloc/free是继承c语言中的malloc/free,它的用法和在C语言中的用法一模一样。 1.那么既然c++中有了可以动态开辟内存的函数为什么又要有new/delete...

2016-04-11 20:04:21

阅读数 1748

评论数 2

数据结构 线性表—单链表

本文只要实现单链表的初始化、插入(尾插、头插、任意位置插入)、删除(尾删、头删、删除指定元素)、查找等。定义单链表typedef int DataType; typedef struct LinkNode {  DataType data;  struct LinkNode *next; }Lin...

2016-04-11 20:04:00

阅读数 209

评论数 0

Linux设备模型(4)_sysfs

Linux设备模型(4)_sysfs 1. 前言 sysfs是一个基于RAM的文件系统,它和Kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。 sysfs具备文件系统的所有属性...

2017-11-16 10:42:13

阅读数 136

评论数 -2

Linux设备模型(3)_Uevent

Linux设备模型(3)_Uevent 1. Uevent的功能 Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。 该机制通常是用来支持热拔插设备的,例如U...

2017-11-16 09:58:33

阅读数 159

评论数 0

Linux设备模型(2)_Kobject

Linux设备模型(2)_Kobject 1. 前言 Kobject是Linux设备模型的基础,也是设备模型中最难理解的一部分(可参考Documentation/kobject.txt的表述)。因此有必要先把它分析清楚。 2. 基本概念 ...

2017-11-14 12:10:05

阅读数 172

评论数 0

Linux设备模型(1)_基本概念

Linux设备模型(1)_基本概念 1. 前言 在“Linux内核的整体架构”中,蜗蜗有提到,由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人...

2017-11-07 16:29:24

阅读数 134

评论数 0

Linux内核整体架构

Linux内核的整体架构 1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。 注:本文和其它的“Linux内核分析”...

2017-11-02 19:24:00

阅读数 216

评论数 0

字符设备驱动程序之misc_dev方式注册字符设备

注册字符设备有三种方法:chardev、cdev、misc注册,本文介绍用misc_dev注册方法注册设备,编写简单字符设备驱动程序,实现字符设备驱动程序的基本框架。 编写字符设备驱动的基本步骤为: 1、编写对该设备的各种操作函数(open、write、ioctl) 2、定义一个file_o...

2017-08-04 18:16:19

阅读数 370

评论数 0

二叉树中两个节点的最近公共祖先节点

题目:求二叉树中两个节点的最近公共祖先节点 一、该二叉树为搜索二叉树 搜索二叉树的特点: 任意一个节点的左子树的所有节点值都比该节点的值小,其右子树的所有节点值都比该节点的值大。 解决该问题方法: 从树的根节点开始和两个节点作比较,如果当前节点的值比两个节点的值都大,则这两个节点的最近公共祖先节点...

2016-08-04 23:43:47

阅读数 23857

评论数 2

子进程的个数

分析这段代码:分析fork() n次子进程的个数为? 如下图可知,子进程的个数为2^n - 1 如下图:fork()产生进程的过程就像一颗二叉树,一棵树中只有一个父进程,其他都是子进程

2016-07-29 23:36:05

阅读数 285

评论数 0

项目:文件压缩及解压缩

项目描述:实现文件的压缩及解压缩。  开发平台:VS2013  开发技术:堆,Huaffman树,文件输入输出函数  项目特点: 1.统计文件中字符出现的次数,利用数据结构堆建造Huffman树,出现次数多的编码短,出现次数少的编码长。  2.根据建造好的Huffman树形成编码,以对文件进行压缩...

2016-07-13 23:36:20

阅读数 788

评论数 0

没有被调用的函数其代码为什么会被执行?

现象 首先我们运行下面一段代码: 从以上程序中我们可以知道,main函数调用函数fun1,函数fun1和main函数都没有调用函数fun,因此,我们认为函数fun中的"fun is run.."和 "you are done.."都不会被打印。 且mai...

2016-06-10 19:48:08

阅读数 2537

评论数 0

构造哈希表之开链法(哈希桶)

上一篇博客中介绍了用闭散列法的二次探测和开链法构造哈希表的原理即实现方式。 构造哈希表的闭散列法之二次探测地址:http://blog.csdn.net/xyzbaihaiping/article/details/51607770 这里简单描述一下哈希桶的基本原理: 哈希表中保存包含每个...

2016-06-08 09:50:09

阅读数 3280

评论数 0

构造哈希表之二次探测法

HashTable-散列表/哈希表 是根据关键字(key)而直接访问在内存存储位置的数据结构。 它通过一个关键值的函数将所需的数据映射到表中的位置来访问数据,这个映射函数叫做散列(哈希)函数,存放记录的数组叫做散列表。 构造哈希表的几种方法 1.直接定址法(取关键字的某个线性函数为哈希地址) ...

2016-06-08 01:19:00

阅读数 26377

评论数 4

task_struct结构体(PCB)描述

task_struct结构描述 在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承...

2016-06-05 22:16:05

阅读数 798

评论数 0

操作系统中常用到的进程调度算法

一、先来先服务 最简单的调度算法是先来先服务(FCFS),也称为先进先出(First-In-First-Out,FIFO)或严格排队方案。当每个进程就绪后,它加入就绪队列。当前正在运行的进程停止执行时,选择在就绪队列中存在时间最长的进程运行。 二、轮转法 这是一种基于时钟的抢占策略,以一个周期性间...

2016-06-05 21:46:10

阅读数 2514

评论数 0

二叉树的线索化

线索化意义: 二叉树是非线性结构,遍历二叉树都是通过递归或者用栈辅助非递归来遍历的。如果我们知道一个节点的前驱和后继,那么我们就可直接遍历二叉树 设置二叉树节点的前驱和后继,就是线索化二叉树,我们利用指向左右子树的空指针存放节点的前驱和后继 线索化设计思路: 遍历二叉树,当遍历到一个节点的...

2016-05-27 23:55:40

阅读数 1178

评论数 0

广义表的创建及成员函数的实现

广义表是非线性的结构,是线性表的一种扩展,是有n个元素组成有限序列。 广义表的定义是递归的,因为在表的描述中又得到了表,允许表中有表。 例如: (1)A = () (2)B = (a,b) (3)C = (a,b,(c,d)) (4)D = (a,b,(c,d),(e,(f...

2016-04-20 10:44:59

阅读数 1257

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭