数组和广义表 数组数组是线性表的扩展,其数据元素本身也是线性表。 数组的特点 数组中各元素都具有统一的类型 可以认为,d维数组的非边界元素具有d个直接前驱和d个直接后继 数组维数确定后,数据元素个数和元素之间的关系不再发生改变,适合于顺序存储。 每组有定义的下标都存在一个与其相对应的值 数组的基本操作定义 构造n维数组 销毁数组 取得指定下标的数组元素值 为指定下标的数组元素重新赋值 多维数组的通用操作通过 2024-11-15 笔记 #数据结构
赫夫曼树和线索二叉树 赫夫曼树前瞻概念 结点权值:和叶子结点对应的一个有某种意义的实数(Wi) 树的路径长度:从树根到每一个结点的路径上的分支数之和。 带权路径长度:叶子结点的路径长度与该结点的权之积。 树的带权路径长度:树中所有叶子结点的带权路径长度之和。 最优二叉树(Huffman,赫夫曼/哈夫曼/霍夫曼树):带权路径长度WPL最小的二叉树。 从最优二叉树这一名字我们就可以得知,在我们提前知道 2024-11-12 笔记 #数据结构
计算机系统基础实验2——拆解炸弹 实验二:拆解炸弹实验要想拆解炸弹我们首先需要知道bomb程序是如何工作的,所以我们先通过 objdump -d bomb >bomb.s 指令来得到程序的汇编代码。 由于这关需要查看大量的汇编代码,同时需要通过查找在很多函数中来回跳转,通过原有的方式登录服务器的方式并不方便,所以通过vscode进行远程连接: 通过vscode连接到远端服务器后,可以方便的查看汇编代码,同时添加注释也更加方 2024-11-12 笔记 #计算机系统基础
计算机系统基础第三次作业 3.58 首先我们给每一行先添加注释,看看这些汇编代码的作用: 12345678decode2: subq %rdx, %rsi //将%rsi-=%rdx imulq %rsi, %rdi //%rdi *= %rsi; movq %rsi, %rax //%rax = %rsi salq $63, %rax //%rax 左移63位 sarq $63, % 2024-11-04 作业 #计算机系统基础
数据结构_树 逻辑结构 集合:数据元素间除“同属于一个集合”外,无其它关系。如,一堆沙子 线性结构:一个对一个,如线性表、栈、队列;如,一根链条,一个单词中的所有字母 树形结构:一个对多个,如树;如,一棵树,家谱树等 图形结构:多个对多个,如图;如,交通图,高铁图 树和二叉树结构概念合集树的定义:元素至多有一个前驱元素,而可有多个后继元素。 结构定义:Tree是n(n>=0)个节点的有限集,空 2024-10-28 笔记 #数据结构
计算机系统基础_程序的机器级表示 机器级代码在程序编译过程中,编译器会把抽象的高级代码转化为处理器执行的非常基本的指令,而汇编代码非常接近于机器代码,与机器代码的二进制格式相比,,汇编代码的主要特点是它用可读性更好的文本格式表示。 并且通过汇编代码,一些对于程序员隐藏的处理器状态都是可见的: 程序计数器-(通常称为 “PC”, 在 x86-64 中用%rip 表示)给出将要执行的下一条指令在内存中的地址。 整数寄存器文件包含 1 2024-10-27 笔记 #计算机系统基础
数据结构_串 串定义: 零个或多个字符组成的有限序列 衍生定义: 子串:串中任意个连续的字符组成的子序列称为该串的子串。 主串:包含子串的串称为主串 串相等:两个串长度相等,且对应位置的字符都相等 空格串/空白串:由一个或多个空格组成 空串:空串不包含任何字符,长度为0。 串的顺序存储结构定长顺序存储表示存储定义: 12#define MAXSTRLEN 255typedef unsigned c 2024-10-27 笔记 #数据结构
计算机系统基础_作业2 2.75 针对补码乘法,我们得到如下式子: 其中的mod2^w 相当于截取前w位的操作,那么我们取高w位,则只需将取模运算改为除法。 得到: 于是我们的代码如下: 123456789101112131415161718#include<stdlib.h>#include<stdio.h>#include<stdbool.h>#include<math. 2024-10-25 作业 #计算机系统基础
栈和队列的应用 数制转换 将十进制数N转换为r进制的数,其转换方法利用辗转相除法:以N=3467,r=8为例转换方法如下: 代码如下:(这里我们省略了对于栈实现的代码若需要查看栈的内部代码请看:栈和队列) 1234567891011121314151617181920int main(){ SqStack s; InitStack(&s); int N,r 2024-10-24 笔记 #数据结构
计算机系统基础第二章_信息的表示和处理 计算机中信息的表示计算机中的所有信息都通过0和1表示,同时大多数计算机使用8位的块,也就是1个字节,作为最小的可寻址单位,这也就是说计算机中一个最小地址单位中包含8个bit位。 进制转换二进制表示法太冗长,为了简化二进制位的表示,我们通常用8进制和16进制数来表示二进制位,这样既能简短表示长度,同时也方便与二进制位进行转化。在16进制中我们将‘A’’B’ ‘C’ ‘D’ ‘E’ ‘F’用来表示数字 2024-10-24 笔记 #计算机系统基础