汇编语言数据结构

所需积分/C币:4 2018-09-01 14:04:15 1.24MB PDF

本书简明扼要地介绍了各种典型数据结构及其在汇编语言(编译器 MASM32v10) 中的 实现代码。主要内容包括:数组、栈与队列、链表、树、哈希表、图等。 本书可作为计算机类专业的本科生的汇编语言数据结构教材, 也可以作为使用计算机的 广大科技工作者的参考资料
内容简介 本书简明扼要地介绍了各种典型数据结构及其在汇编语言(编译器MASM32v10)中的 实现代码。主要内容包括:数组、栈与队列、链衣、树、哈希衣、图等 本书可作为计算机类专业的本科生的汇编语言数据结构教材,也可以作为使用计算机的 广大科技工作者的参考资料 前言 本书所有小例的源代码均为汇编语言,编详环境:MASM32V10。MASM32V10下载网 址:htt:/ ww.masm32com 第·章:数组 第二章:栈与队列 第三章:链表 第四章:树 第五章:哈希表 第六章:图 有关更新和勘误可以在下面的网站上找到: http://www.zencai.com/ 源代码载网址:hp:/www,∠encai.com/Archive/ds.rar 如果由于某和原因造成上面的网址无法疠问的话,可通过发邮件给作者来获取更新与勘 误。作者的电了邮箱:wzczendai.com或wangzengcai(@I26.com 读者在阅读本书之前,应当己经能够看懂汇编语言编写的程序。 特别感谢自考中国网htp:/www.chinazk.com)的站长zwh老师多年来对我的帮助 目录 内容简介…… 前 目录 第一章数组(Aray) L.1数组(Aray) 1.1.1简介 1.1.2定义 1.1.3逻辑结构与存储结构…....... 45888899 1.1.4本节习题. 12一维数组 .10 12.1创建一维数组 .10 源代码 12.2计算维数组的大小 12 源代码. 12 源代码. 123读写一维数组元素 34 ······,· 源代码.. 24间接操作数( indirect addressing) 16 源代码. 18 1.25利用循环读取一维数组元素 源代码 12.6本节习题. 20 1.3二维数组(Iwo- Dimensional array) 13.1某址变址(base- index)操作数.… 源代码 源代码 ···········:·:······ 3 1.3.2相对基址变址操作数(Base- Index displacement operand) 25 源代码 1.4排序(Sort) 14.1冒泡排序( Bubble sort) 源代码 27 源代码 29 142快速排序( Quick sort) 源代码 43直接插入排序( Straight Insertion Sort) 33 源代码… .34 144希尔排序( Shell sort) 1.5查找( Search) 36 源代码 37 第二章堆栈与队列( Stack and Queue) 2堆栈( Stack)… 211入栈(Push.… 2.1.2出栈(Pop) 源代码 40 22队列( Queue) 41 源代码 23结构( Structure) …43 23.1定义结构 .4 2.32声明结构变量. ·····:······+*·····++··4··; ………4 2.3.3队列的结构. 源代码. 45 第三章链表( Linked list)… 49 3.1单链表( Single linked list) ..49 3.1.1创建结点 50 3.1.2查找结点 50 插入结点 3.14删除结点 53 源代码. 32双链表( Double linked list) 61 3.2.1插入结点… 32,2删除结点 +++++·+++++· …62 溟代码. 3.3循环链表( Circular Linked List) 3.3.1单循环链表 .70 源代码. 3.32双循环链表 源代码 第四章树(Tree)… 86 4.1树的概念 4.1.1树的定义 4.1.2基本术语 42二叉树( Binary Tree) .87 42.1二叉树的定义 ∴87 4.2.2二叉树的数据结构 87 42.3二义树的遍历… 源代码. 90 43多叉树转换为二叉树. 96 源代码……… .96 44二叉排序树( Binary sort Tree 44.1二义排序树的插入…… …102 44.2二叉排序树上的查找 104 源代码 105 第五章哈希表( Hash Table) 5.1哈希表的概念 52哈希函数的构造方法 52.1直接寻址法 112 源代码 522平方取中法 114 5.2.3除余法 114 源代码 l14 53处理冲突的方法 117 53.1开放定址法( Open Addressing .117 532再哈希法( Double hashing) +··*·+·+···*·····+·······++·· 117 53.3拉链法( Chaining) ·, 118 第六章图( Graph 6.1图的概念 6.1.1图的定义 118 6.1.2图的术语. 118 6.2图的存储结构 *··· 621尔接矩阵( Adjaccncy Matri)… 121 源代码 62.2邻接表( Adjacency List) 126 源代码. 62.3邻接矩阵和邻接表的比较 63图的遍历( Traversing Graph)… +++++·+++++· 132 6,3.1深度优先崺历( Depth- First traversal) 132 源代码.. 632广度优先遍历( Breadth- irst Traversa 源代码… 137 附录 32位通用段寄存器(32- bit General-Purpose Registers)… ∴145 某数后缀( radix) …146 标号与变量的命名规范. 内部数据类型( Intrinsic Dala Types) …147 构建汇编编程环境(MASM32V10). 参考资料. …,,,149 附录 .149 7 第一章数组(Aray) 本章要点 数组的定义 维数组 二维数组 数组的创建,读写操作 1.1数组( Array) 111简介 本章将揭示数组的概念及其汇编实垗代码。数组是一种非常常见的数据结构,我相信, 学过C,C→+ CLJAVA等编程语言的朋友对数组一定熟悉得不能雨熟悉了 1.12定义 数组(Aray),是一系列数的组合,它们有同一个名称并以序号分别来标识其中的每个数 (元素, lement) 维数组用数学符号可以表示为 Aray={a…an(n∈N Aray标识数组的名称,当然亦可是其他任意合法的名称。(此处的合法指的是符合某 一种具体的编程语言的变量命名规则);n标识数组Aray中的元素个数;an标识数组Ariy 中的某一个元素 二维数组用数学符号可以衣示为 翻鲁音 (Ⅲ∈ n∈ ∥7 (1)N表示正整数 在二维数组Amn中,下标m表示行数,n表示列数,其元素的个数为mxn。超过二 维的数组被称为多维数组,例如三维数组,四维数组,五维数组等等 1.13逻辑结构与存储结构 数据的逻辑结构可以看做是从具体问題抽象岀来的数学模型。数据的仨储结构可以看做 是逻辑结构在内存中的存储模刑。此处的冇储结构用的存储器指的是虚拟存储器( Virtual Memory),汇编语言程序将其视为一个非常大的字节数组。虚拟存储器的每个字节都由一个 唯一的数字来标识,称之为地址( address),所有可能的地址的集合就称为虚拟地址空间 ( virtual address spacc))。虚拟地址空间只是一个展现给程序的概念性映像( (imagc)。实际的实 现,使用的是随机访问存储器RAM、磁盘存储、特殊硬件和操作系统软件的结合,来为程 序提供一个看上去统一的字节数组。一维数组的逻辑结构是线性的(直线),二维数组的逻 辑结构是矩形的(矩阵),三维数组的逻辑结构是立体的(就好比空间向量坐标一样)。由于 计算札的内存结构是线性的,因此所有数组的存储结构均为线性模式 11.4本节习题 难度:★ 1.数组的定义是什么? 2.用数学符号描述一维数组 3.用数学符号描述二维数组。 4.阐述数据的逻辑结构。 5.阐述数据的存储结构。 难度:★★ 6.为什么要发明数组? 难度:★★★ 用立方体描述三维数组的数学模型 难度:★★★★ 8.用平行空间或其他模型来描述四维数组,五维数组。 难度:★标识习题为基础题,可以从本书中直接找到答案,目的是复习学习内容。 难度:★★标识习题为发散思维题,木书中没有直接答案,目的是培养创新发散思维 难度:★★★标识习题为挑战思维题,本书中没有直接答案,难度比较人,作者自己可 能也解答不了 难度:★★★★标识习题为极限思维题,本书中没有直接答案,难度不是一般的大,作者 自己肯定解答不了。 Cb 12一维数组 数组在使用前必须定义好并分配足够的内存存储空间。除了一些高级语言有动态数组 外,般情况下,数组在定义时就要明确其每个元素的大小与元素的个数。然后即可对数组 进行读写操作。当然,在定义数组后,立即对数组进行初始化,或者在定义数组时就对其赋 初始值,是个良好的习惯,以避免读取到脏数据。(即无意义的数据) 121创建一维数组 声明并初始化个维数组的格式 arrayName type value 说明 array Name:数组名 Type:类型 value:初始值列衣(初始值之间用逗号分隔) 举例 arraya dword 1, 2, 3, 4,5 下面是该数组在内存中的图小,假设 arrayA从地址0处开始,注意地址是以4字节递增的。 地址(ofte) 值(aue) 0000 0004 0008 1234 000C 10

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐
  • 下载 -

    -