-
顺序查找的性能分析
所属栏目:[语言] 日期:2023-05-23 热度:9641
查找操作的性能分析主要考虑其时间复杂度,而整个查找过程其实大部分时间花费在关键字和查找表中的数据进行比较上。
所以查找算法衡量好坏的依据为:查找成功时,查找的关键字和查找表中的数据元素中进行过比较的[详细] -
顺序查找的实现
所属栏目:[语言] 日期:2023-05-23 热度:9781
通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表。
静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。
本节以静态[详细] -
数据结构查找表。
所属栏目:[语言] 日期:2023-05-23 热度:8761
在日常生活中,几乎每天都要进行一些查找的工作,在电话簿中查阅某个人的电话号码;在电脑的文件夹中查找某个具体的文件等等。本节主要介绍用于查找操作的数据结构——查找表。
查找表是由同一类型的数[详细] -
回收算法
所属栏目:[语言] 日期:2023-05-23 热度:2228
在用户活动完成,系统需要立即回收被用户占用的存储空间,以备新的用户使用。回收算法中需要解决的问题是:在若干次分配操作后,可利用空间块中会产生很多存储空间很小以致无法使用的空闲块。但是经过回收用户释放的[详细]
-
分配算法
所属栏目:[语言] 日期:2023-05-23 热度:740
当用户申请空间时,系统可以采用 3 种分配方法中的任何一种。但在不断地分配的过程中,会产生一些容量极小以至无法利用的空闲块,这些不断生成的小内存块就会减慢遍历分配的速度。
选定一个常量 e,每次分配空间时[详细] -
广义表的原子和子表
所属栏目:[语言] 日期:2023-05-23 热度:1244
通常,广义表中存储的单个元素称为 "原子",而存储的广义表称为 "子表"。
例如创建一个广义表 LS = {1,{1,2,3}},我们可以这样解释此广义表的构成:广义表 LS 存储了一个原子 1 和子表 {1,2,3}。
以下是广义表[详细] -
什么是广义表
所属栏目:[语言] 日期:2023-05-23 热度:1950
数组即可以存储不可再分的数据元素(如数字 5、字符 'a'),也可以继续存储数组(即 n 维数组)。
但需要注意的是,以上两种数据存储形式绝不会出现在同一个数组中。例如,我们可以创建一个整形数组去存储[详细] -
BF算法实现
所属栏目:[语言] 日期:2023-05-23 热度:4968
BF 算法的实现思想是:将用户指定的两个串 A 和串 B,使用串的定长顺序存储结构存储起来,然后循环实现两个串的模式匹配过程,C 语言实现代码如下:
#include <stdio.h>
#include <string.h>
//串普通模式匹配算[详细] -
串的块链存储结构
所属栏目:[语言] 日期:2023-05-23 热度:6510
串的块链存储,指的是使用链表结构存储字符串。
本节实现串的块链存储使用的是无头节点的单链表。当然根据实际需要,你也可以自行决定所用链表的结构。
我们知道,单链表中的 "单" 强调的仅仅是链表各个节点只[详细] -
串的堆分配存储结构
所属栏目:[语言] 日期:2023-05-23 热度:738
串的堆分配存储,其具体实现方式是采用动态数组存储字符串。
通常,编程语言会将程序占有的内存空间分成多个不同的区域,程序包含的数据会被分门别类并存储到对应的区域。拿 C 语言来说,程序会将内存分为 4 个区[详细] -
顺序存储结构
所属栏目:[语言] 日期:2023-05-23 热度:120
我们知道,顺序存储结构(顺序表)的底层实现用的是数组,根据创建方式的不同,数组又可分为静态数组和动态数组,因此顺序存储结构的具体实现其实有两种方式。
通常所说的数组都指的是静态数组,如 str[10],静态数[详细] -
串存储结构
所属栏目:[语言] 日期:2023-05-23 热度:3680
数据结构中,字符串要单独用一种存储结构来存储,称为串存储结构。这里的串指的就是字符串。
严格意义上讲,串存储结构也是一种线性存储结构,因为字符串中的字符之间也具有"一对一"的逻辑关系。只不过,与之前所[详细] -
队列存储结构
所属栏目:[语言] 日期:2023-05-23 热度:413
队列中数据的进出要遵循 "先进先出" 的原则,即最先进队列的数据元素,同样要最先出队列。拿图 1 中的队列来说,从数据在队列中的存储状态可以分析出,元素 1 最先进队,其次是元素 2,最后是元素 3。此时如果将元素[详细]
-
进栈和出栈的定义
所属栏目:[语言] 日期:2023-05-23 热度:323
基于栈结构的特点,在实际应用中,通常只会对栈执行以下两种操作:
向栈中添加元素,此过程被称为"进栈"(入栈或压栈);
从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);
栈的具体实现
栈是一种[详细] -
循环链表实现约瑟夫环
所属栏目:[语言] 日期:2023-05-22 热度:7587
约瑟夫环问题,是一个经典的循环链表问题,题意是:已知 n 个人(分别用编号 1,2,3,…,n 表示)围坐在一张圆桌周围,从编号为 k 的人开始顺时针报数,数到 m 的那个人出列;他的下一个人又从 1 开始,还是[详细]
-
静态链表删除元素
所属栏目:[语言] 日期:2023-05-22 热度:143
静态链表中删除指定元素,只需实现以下 2 步操作:
将存有目标元素的节点从数据链表中摘除;
将摘除节点添加到备用链表,以便下次再用;
提示:若问题中涉及大量删除元素的操作,建议读者在建立静态链表之初创[详细] -
链表删除元素
所属栏目:[语言] 日期:2023-05-22 热度:9438
从链表中删除指定数据元素时,实则就是将存有该数据元素的节点从链表中摘除,但作为一名合格的程序员,要对存储空间负责,对不再利用的存储空间要及时释放。因此,从链表中删除数据元素需要进行以下 2 步操作:
将[详细] -
空间复杂度
所属栏目:[语言] 日期:2023-05-22 热度:6183
和时间复杂度类似,一个算法的空间复杂度,也常用大 O 记法表示。
要知道每一个算法所编写的程序,运行过程中都需要占用大小不等的存储空间,例如:
程序代码本身所占用的存储空间;
程序中如果需要输入输出数[详细] -
顺序表的初始化
所属栏目:[语言] 日期:2023-05-22 热度:6478
使用顺序表存储数据之前,除了要申请足够大小的物理空间之外,为了方便后期使用表中的数据,顺序表还需要实时记录以下 2 项数据:
顺序表申请的存储容量;
顺序表的长度,也就是表中存储数据元素的个数;
提示:[详细] -
数据结构有哪些
所属栏目:[语言] 日期:2023-05-22 热度:4888
通过上节我们知道,数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?本节将对数据结构的学习内容做一个简要的总结。
数据结构大致包含以下几种存储结构:
线性表,还可细分为顺序表、链[详细] -
什么是数据结构
所属栏目:[语言] 日期:2023-05-22 热度:2803
我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的加和值,无缘由的数据存储行为是对存储空间的不负责任。
因此,数据在计算机存储空间的[详细] -
VS2015使用教程
所属栏目:[语言] 日期:2023-05-22 热度:5913
前面我们给出了一段完整的C语言代码,就是在显示器上输出“C语言中文网”,如下所示:
#include <stdio.h>
int main()
{
puts("C语言中文网");
return 0;
}
本节我们就来看看如何通过 VS[详细] -
VS2015下载地址和安装教程
所属栏目:[语言] 日期:2023-05-22 热度:2636
为了更好地支持 Win10 程序的开发,微软发布了 VS2015。VS2015 支持开发人员编写跨平台的应用程序,从 Windows 到 Mac、Linux、甚至是编写 iOS 和 Android 代码!
对于大部分程序开发,这三个版本的区别不大,免费[详细] -
Windows下的编译器有哪些
所属栏目:[语言] 日期:2023-05-22 热度:8076
安装编译器或者 IDE(集成开发环境),也叫搭建开发环境。Windows 下的C语言 IDE 众多,多如牛毛,初学者往往不知道该如何选择,本节就来给大家指点迷津。
1) Visual Studio
Windows 下首先推荐大家使用微软开发[详细] -
与编译器相关的几个知识点
所属栏目:[语言] 日期:2023-05-22 热度:3192
上节我们介绍了编译器和 IDE 的概念,大家肯定希望赶紧实践一下,用 IDE 真正地运行一段C语言代码来看看效果,这样能够更快地获得成就感。
但是,使用 IDE 的过程中会涉及到一些与编程有关的概念,这些概念如果不[详细]