![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
文章平均质量分 78
linda_ds
1.真理掌握在少数人手里,多思考,不盲从;2.你的问题在于读得太少,想得太多。
展开
-
文章标题
抽象数据类型(abstract data type)是一些操作的集合。包括对 表,图,集合 的操作对于集合ADT,有并,交,测定大小以及取余等操作。 这些操作的实现只在程序中编写一次,而程序中任何的其他部分需要在该ADT上运行其中的一种操作时可以通过适当的函数来进行。表ADT实现操作:查找(Find)、插入(Insert)、删除 (Delete)链表实现测试一个链表是否是空链表/*R原创 2016-07-21 17:26:28 · 330 阅读 · 0 评论 -
编程珠玑课后习题
第一章 开篇3.位图排序:在排序中,我们可以很容易的想到用数组来排序,一个元素标志一个数,但是,这样做太浪费空间了,我们可以以一个二进制位(bit)标志一个数,这样形成的排序就是位图排序。 位图排序源码如下,#include <stdio.h>#include <stdlib.h>#define N 10000000#define M 1000000#define BITSPERWORD 3原创 2017-07-23 17:07:20 · 919 阅读 · 0 评论 -
循环赛算法分析
这是一个算法作业,老师说要用分治思想解决,在网上找了都讲解的不是很明白,比赛对数为奇数时,有点费解。不过最后还是想明白了,顺便把作业放这,有兴趣了解的可以看一下,逃)问题:有N个运动员进行单循环赛,即每个运动员要和所有其他运动员进行一次比赛。 1.试用分治法为N个运动员安排比赛日程。 2.要求每个(或队)运动员每天只能进行一场比赛,且当运动员人数(队数)为偶数时,整个比赛在N-1天内结束,为奇数原创 2017-12-10 22:44:39 · 15850 阅读 · 13 评论 -
跳表(skip list)
跳表(skip list)LINDA2018/8/9跳表可以作为AVL、红黑树等平衡二叉树或伸展树等自适应树的替代品。对于跳表,任何数据集的查找、插入、删除操作都是O(lgn)。在普通的链表中,查找、插入、删除都是O(n),这是因为它是按顺序扫描的。如果可以增大扫描的步长(即跳过某些结点),我们就可以减少扫描的开销了。这就是跳表的基本思想。跳表相对于普通链表有两点不同:...翻译 2018-08-09 18:27:16 · 749 阅读 · 0 评论 -
红黑树的简单实现
红黑树LINDA2018/9/25前言如果你还是对写红黑树毫无头绪,可以看一下我的思路,从普通二叉搜索树的插入操作是如何一步步“进化”为真正的红黑树的插入操作的。红黑树的四个规则:(1) 每个结点要么是红的,要么是黑的;(2) 根结点必须为黑的;(3) 若结点为红,它的子节点为黑;(4) 从根结点到 nil 结点之间的黑结点个数相同。由于规则 (4) ,新插入的结点必须...原创 2018-09-25 21:38:39 · 812 阅读 · 0 评论