C
universe_ant
这个作者很懒,什么都没留下…
展开
-
C语言struct关键字详解
C语言struct关键字详解 struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用。 在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。 经验不足的开发人员往往将所有需要传送的内容依顺序保存在char型数组中,通过指针偏移的方法传送网络报文等信息。这样做编程复杂原创 2016-04-12 23:14:45 · 2134 阅读 · 0 评论 -
堆和优先队列
0、引言在许多问题中,当对数据集进行频繁的插入和删除操作时,往往需要快速确定最大或最小的元素。处理这种问题的方法之一,就是使用一个已排好序的数据集。通过这种方法,最大或最小元素总是处在数据集的头部(这取决于使用升序还是降序排列)。然而,将数据集一遍又一遍地进行排序的代价是非常高的。并且很多情况下,将元素排序并不是操作的目的,最终我们可能在真正要做的工作之外做了很多其他的工作。想要快速地找到最大原创 2016-12-09 17:00:34 · 609 阅读 · 0 评论 -
树
0、引言家族族谱、比赛的对阵表等,这些都是关于按照树形结构组织数据的绝好例子。在计算机科学中,树由称为结点的元素按照层次结构的方式组织而成。层次结构最顶端的结点称为根。与根节点直接相连的结点称为根的子结点,通常子结点本身也有属于它自己的子结点。除了根结点外,在这个层次体系中的每个结点都有唯一的父结点,也就是与其直接相连的上级结点。一个结点拥有多少个子结点取决于树的类型,这个量值称为树的分支因子原创 2016-12-08 23:46:48 · 623 阅读 · 0 评论 -
哈希表
0、引入哈希表支持一种最有效的检索方法:散列。从根本上来说,一个哈希表包含一个数组,通过特殊的索引值(键)来访问数组中的元素。哈希表的主要思想是通过一个哈希函数,在所有可能的键与槽位之间建立一张映射表。哈希函数每次接受一个键将返回与键相对应的哈希编码或哈希值。键的数据类型可能多种多样,但哈希值的类型只能是整型。由于计算哈希值和在数组中进行索引都只消耗固定的时间,因此哈希表的最大亮点在于它是原创 2016-12-07 17:26:42 · 4875 阅读 · 1 评论 -
集合
0、引入集合是不同对象(称为成员)的无序聚集。由于元素之间彼此相关联,因此可以理解为归聚在一起的成员组合。集合的两个重要特点是:第一,成员是无序的;第二,每个成员在集合中出现一次。集合是离散数学中的重要部分,离散数学与计算机科学之间有着很深的渊源。在计算机科学中,我们使用集合来归类数据,尤其是当我们计划以后将其与其他数据相关联时。一些编程语言比如Pascal原生支持集合,但C语言本身并没有这种原创 2016-12-05 17:35:45 · 822 阅读 · 0 评论 -
栈和队列
0、引入通常来说,决定采用何种方式来存储数据是非常重要的,这样便于稍后检索数据时,数据会自动按照某种规定的顺序给出。用于检索数据的一种常用结构称为栈,它检索元素的顺序与存储元素的顺序相反。例如:一个记录函数调用轨迹的数据块。这些数据块称为活跃记录。有一个函数集{f1, f2, f3},其中f1调用f2,f2调用f3,每次当函数调用发生时,程序就会分配空间来记录此激活信息。这些记录会一直存在直到原创 2016-12-04 16:38:57 · 399 阅读 · 0 评论 -
链表
0、引入链表可以说是一种最为基础的结构。链表是由一组元素以一种特定的顺序组合或链接在一起,在维护数据的集合时很有用。这一点同我们常用到的数组很相似。然而,链表在很多情况下比数组更有优势。特别是在执行插入和删除操作时链表拥有更高的效率。链表需要动态地开辟存储空间,也就是存储空间是在程序运行时分配的。由于在很多应用中数据的大小在编译时并不能确定,因此这种动态分配空间的特性也是链表的一个优点。原创 2016-12-03 22:26:30 · 614 阅读 · 0 评论 -
递归
0、引入递归是一种强大的方法,它允许一个对象以其自身更小的形式来定义自己。恐怕没有什么比观察神秘的自然界中出现的递归现象更好的方法来体会递归的重要意义了。想想蕨类植物的叶子,每片叶子叶脉中的小分支都是整片叶子的较小缩影;又或者两个反光的物体,相互映射对方渐远的影像。这样的例子使我们明白尽管大自然的力量是强大的,在许多方面它那种出乎意料的简洁更让我们觉得优美。同样的道理也可用在递归算法上,从很多原创 2016-12-01 15:32:46 · 471 阅读 · 0 评论 -
图
0、引入在计算机科学领域中,图是最为灵活的数据结构之一。事实上,大多数其他的数据结构也都能表示为图的形式,尽管按照这种方式表示它们通常会变得更加复杂。一般来说,图在定义对象之间的关系或或联系这类问题上能够作为一种模型来帮助我们。图中的对象可能是某种实际的实体,比如网络中的结点或者河流中的岛屿,但这也并非必须如此。通常,对象都不是那么具体,比如说某个系统中的状态或数据库中的业务。相同点只是对象之原创 2016-12-10 15:03:33 · 640 阅读 · 0 评论 -
C语言-指针操作
0.引入在C语言中,原创 2016-11-30 23:29:16 · 13567 阅读 · 2 评论 -
C程序的执行过程
1.hello程序的生命周期是从一个高级C语言程序开始的,然后为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化为一系列的低级机器语言指令。 2.预处理阶段。预处理器(cpp)根据以字符#开头的命令,修改原始的C程序。#include 命令告诉预处理器读取系统头文件stdio.h的内容,并将它直接插入到程序文本中。结果就得到另一个C程序,通常以.i作为文件扩展名。转载 2017-08-20 14:08:11 · 513 阅读 · 0 评论