软考数据结构与算法

1.数组存储地址的计算

len:每个数组元素所占用的字节大小。

n:代表二维数组的列数。

M:代表二维数组的行数。

存储单元从0开始。

2.单链表的删除操作

a1的next指针指向a3就等于p的next指向q的next,

3.单链表的插入操作

S的next指向p的next,p的next指向s。

4.单链表有头结点和无头结点,引入头结点可以令所有的结点的操作方式是一致的。

5.双向链表插入节结点操作

6.双向链表的删除操作

7.顺序存储和链表存储的对比

8.线性表,栈与队列

队列先进先出,栈先进后出。

9.

左边的队列是先进后出用法,右边的队列是先进先出用法。

这是因为左边的出口改变了左边入口的出队方式。

10.广义表

广义表的长度:最外层包含元素的个数。

广义表的深度:所含括号的重度。

例1长度为3,深度为2

例2:head(head(tail(LS1)))

11.

12.二叉树遍历

先序遍历:根左右

中序遍历:左根右

后序遍历:左右根

13.树转二叉树原则

14.查找二叉树

15.图:邻接矩阵

16.图:邻接表

17.图的最小生成树

普利姆算法:以点为出发,选取连接点的最短的线。

科鲁兹卡尔算法:以边为出发,选取整个图最短的边,依次连接。

18.时间复杂度:指程序运行从开始到结束所需的时间。

空间复杂度:指一个算法在运行过程中临时占用存储空间大小的度量。

19.顺序查找法时间复杂度O(n),平均查找长度(n+1)/2

二分查找法:在查找成功时关键字的比较次数最多为(序列是有序排列的)。

20.希尔排序

分成不同的组,不同的组之间依次比较,同一个组中的数进行排序,然后把这个组不断扩大,不断进行同一个组内的数据比较排序。

21.直接选择排序

22.堆排序

大顶堆:将数组元素依次写下,从左边第一个非叶子结点开始比较,对元素的一个子树的三个元素进行比较,选取三个元素中,最大的一个元素充当第一个非叶子结点。

完整的堆排序

依次选择出最顶端的数据挑出,把完全二叉树最后一个元素拿出补到最顶端的元素当中,继续运行。

23.冒泡排序

24.快速排序

25.归并排序

26.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值