数据结构刷题知识点归纳

线性表

  • 线性表可以为空

  • 除头元素和尾元素外,每个元素都有且仅有一个直接前驱,有且只有一个直接后驱。

  • 线性表:队列、栈、链表、顺序表。关联数组不是,关联数组是一种映射、字典(dictionary),是一种抽象的数据结构,里面包含着类似<K,V>的键值对

  • char str[] = “Hello”,sizeof(str)的计算:存储str时实际要上是‘H’‘e’‘l’‘l’‘o’’\0’,要注意结尾的字符串结束符\0,因此sizeof(str)==6. sizeof要计算结束符,但是strlen不需要

  • 矩阵的转置:矩阵使用三元式存储,如图,数据结构刷题知识点归纳
    矩阵转置时,分为三步:
    (1)矩阵的行数和列数互换
    (2)三元式中的 i 和 j 交换
    (3)转换后的表按照行序(也就是转换前的列序)进行排序,生成新表。

  • 将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为55

仅存上三角或者下三角,再加对角线
((n-10)/ 2)+10 = 55

  • 栈具有记忆功能
  • 平衡树和哈希表都具有比较好的查找和删除功能数据结构刷题知识点归纳
  • 数组也可以用来存储完全二叉树。因此“数组是一种线性结构,因此只能用来存储线性表”这句话是错的
  • 在多重循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数
  • 在一般情况下,采用压缩存储后,稀疏矩阵是所有特殊矩阵中存储空间节约最多的