• 集合

    集合及其表示 集合是成员的一个群集 成员可以是原子,也可以是集合 成员互不相同 同一集合中所有成员具有相同的数据类型 表示 用位向量实现 用有序链表实现 位向量 当集合是由有限的可枚举的成员组成时,可建立集合成员与整数0、1、2、…的一一对应关系,用位向量表示该集合的子集 {red, yellow, black, white, blue} 0 1 1...
  • 树和森林概念 自由树 定义为二元组Tf={V,E}T_f = \{ V, E\}Tf​={V,E} V为顶点集合 E为边集合 有根树 有n个结点 r是根节点 根以外的是子树 12345678910111213template <class Type> class Tree { public: Tree ( ); ~Tree (...
  • 数组、串与广义表

    多维数组特殊矩阵对称矩阵三对角矩阵 [a00,a01,a10,a11,a12,a13,a21,…,an−1n−2,an−1n−1][a_{00}, a_{01}, a_{10}, a_{11}, a_{12}, a_{13}, a_{21},… ,a_{n-1n-2}, a_{n-1n-1}][a00​,a01​,a10​,a11​,a12​,a13​,a21​,…,an−1n−2​,an−...
  • 二叉树

    遍历递归1234567void recur(Node* head){ if (head == NULL){ return ; } recur(head->left); recur(head->right);} 非递归先序遍历(深度优先) 从栈中弹出一个节点cur 打印(处理)cur 先右后左加入栈(如...
  • 栈和队列

    栈 只在一端插入和删除的线性表(栈顶) 后进先出(LIFO) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455template <class T>class Stack {private: int top; /...
  • 排序

    归并排序 分解 排序 合并 123456789101112131415161718192021222324252627282930void merge(int[] arr, int l, int mid, int r){ int n1 = l; int n2 = mid + 1; int help[r - l + 1]; int i = 0; ...
  • 异或技巧

    交换交换int a 和 int b的位置 123456int a = 10;int b = 20;a = a ^ b;b = a ^ b; //b = a ^ b ^ b = aa = a ^ b; //a = a ^ b ^ b(a) = b a和b不能是同一个数(内存意义上),否则结果会是0 数组查找一个有奇数个的数字(其余全偶数个) ^具有交换律:a ^ ...
  • 线性表

    线性表概念n个数据元素的有限序列 特点 除第一个元素外,其他每个元素有且仅有一个只有一个直接前驱 除最后一个元素外,其他每个元素有且仅有一个只有一个直接后继 抽象基类1234567891011121314151617181920template <class T, class E>class LinearList {public: LinearList(); /...
  • 8.4流水线CPU设计

    1.流水线CPU概述 取指令IF 指令译码ID 执行EX 访存M 写回WB 2.指令的流水段分析3.流水线数据通路的设计 4.流水线控制器的设计
  • 8.3多周期CPU设计

    1.多周期数据通路的设计 分阶段 取指令阶段 执行一次存储器读操作 读出的内容保存到寄存器IR(指令寄存器)中 IR的内容不是每个始终都更新,所以IR必须加一个“写使能”控制 在取指令阶段结束时,ALU输出为PC+4,并送到PC的输入端,但不能在每个时钟到来时就更新PC,所以PC也要有“写使能”控制 译码/读寄存器堆阶段 经过控制逻辑延迟后,控制信号更新为新值 执行一次寄存器读...
1236