数据结构-c语言
文章平均质量分 58
来个人打球
在校学生热爱电子设计 硬件软件都喜欢
展开
-
链表
单链表有一个头节点h e a d,指向链表在内存的首地址。链表中的每一个节点的数据类型为结构体类型,节点有两个成员:整型成员(实际需要保存的数据)和指向下一个结构体类型节点的指针即下一个节点的地址(事实上,此单链表是用于存放整型数据的动态数组)。链表按此结构对各节点的访问需从链表的头找起,后续节点的地址由当前节点给出。无论在表中访问那一个节点,都需要从链表的头开始,顺序向后查找。链表的尾节点由于无原创 2015-08-22 15:52:35 · 453 阅读 · 0 评论 -
兄弟孩子变变变-------二叉树森林树的转换
树转换为二叉树(1)加线。在所有兄弟结点之间加一条连线。(2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。(3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子) 森林转换为原创 2015-09-06 21:33:17 · 1846 阅读 · 0 评论 -
C语言undefined behaviour未定义行为
C语言中的未定义行为(Undefined Behavior)是指C语言标准未做规定的行为。同时,标准也从没要求编译器判断未定义行为,所以这些行为有编译器自行处理,在不同的编译器可能会产生不同的结果,又或者如果程序调用未定义的行为,可能会成功编译,甚至一开始运行时没有错误,只会在另一个系统上,甚至是在另一个日期运行失败。当一个未定义行为的实例发生时,正如语言标准所说,“什么事情都可能发生”,也许什么都转载 2015-08-28 09:31:05 · 490 阅读 · 0 评论 -
c++----------模板
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个原创 2015-08-24 23:00:03 · 273 阅读 · 0 评论 -
大端模式小端模式
“大端”和“小端”可以追溯到1726年的Jonathan Swift的《格列佛游记》,其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大的一端还是先打破较小的一端而争执不休,甚至爆发了战争。1981年10月,Danny Cohen的文章《论圣战以及对和平的祈祷》(On holy wars and a plea for peace)将这一对词语引入了计算机界(《程序设计实践》第9章)。这么看来,所谓大端转载 2015-08-27 20:41:25 · 941 阅读 · 0 评论 -
c++—————————const
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C#.net、HC08 C 定义: 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可转载 2015-08-27 19:57:53 · 310 阅读 · 0 评论 -
c++-------------数组
创建数组a[3][3]a[0][0] a[0][1] a[0][2]a[1][0] a[1][1] a[1][2]a[2][0] a[2][1] a[2][2]1. 记住 一维数组的数组名是列地址,二维数组名是行地址,虽然数组名都是地址,但本质不一样,行地址始终要转化为列地址,才能得到内容值。 2. a是行地址行指针,加就要动行。 *(a)变为 列指原创 2015-08-26 18:19:04 · 303 阅读 · 0 评论 -
c++----------------volatile
就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.比如转载 2015-08-27 14:56:19 · 338 阅读 · 0 评论 -
c++取余问题
最近在一道 Java 习题中,看到这样的一道题:What is the output when this statement executed: System.out.printf(-7 % 3);那么对于负数,是否可以沿用这样的定义呢?我们发现,假如我们按照正数求余的规则求 (-7) mod 3 的结果,就可以表示 -7 为 (-3)* 3 +2。其中,2是余数,-3是商。那么,各种编程语言和计原创 2015-08-24 16:45:57 · 3780 阅读 · 0 评论 -
C++中 类 占 内存问题
若char是一字节,int是4字节,指针类型是4字节,代码如下: class CTest { public: CTest():m_chData(‘\0’),m_nData(0) { } virtual void mem_fun(){} private: char m_chData;原创 2015-08-24 16:54:36 · 552 阅读 · 0 评论 -
c+-----------------------------抽象类
C++抽象类 一、纯虚函数定义. 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”二、引入原因: 1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。 2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。原创 2015-09-06 22:32:32 · 499 阅读 · 0 评论