0%

数据结构算法每日一练(九)查找链表倒数元素

难度: ⭐⭐

题目: 已知一个带有表头结点的单链表,假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数

第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:

(1)描述算法的基本设计思想。

(2)描述算法的详细实现步骤。

(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C、C++或Java语言实现),关键之处请给出简要注释。

阅读全文 »

数据结构算法每日一练(八)数组循环队列

难度: ⭐⭐

题目:下面是给定容量为MAX的使用循环数组实现队列的代码片段,其中T是队列中元素类型。

static int const MAX = 256; //队列的最大容量

static T* data; //循环数组,队列元素存储在此

static 其他必要数据;

(1)请给出循环数组实现队列所需的其他必要数据的定义;

(2)请使用循环数组实现队列的下述六个功能函数,请首先用语言描述实现的方法,再给出C/C++语言的具体实现。

阅读全文 »

数据结构算法每日一练(七)数组未出现最小正整数

难度: ⭐⭐

题目:给定一个含n(n≥1)个整数的数组A,请设计一个在时间上尽可能高效的算法。找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}

中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4。要求:

1)给出算法的基本设计思想。

2)根据设计思想,来用C或C++语言描述算法,关键之处给出注释。

3)说明你所设计算法的时问复杂度和空问复杂度。

阅读全文 »