栈的基本应用(一):对称字符串的检测

要求:

输入一个带“&”的字符串,判断“&”前和“&”后部分是否为逆串。

思路:

依次读入字符串中的每个字符,当未读到“&”时,将每个读入的字符入栈保存。读入“&”后与栈顶字符比较,若相同,则出栈继续读下一个字符直到读取所有符号,否则不满足要求,停止读取。 阅读全文

顺序循环队列的实现

用数组模拟队列时,我们为了避免数据移动及假溢出而使用循环队列,即当插入数据已经位于数组尾部的下一个位置时,若数组头部有空闲空间,则插入到数组头部;删除时,若删除的元素位于数组尾部,则删除后将队首头移动到数组的头部。为了区分队空还是队满,我们还需要使用一个空闲元素。 阅读全文

线性表的基本应用(四):用循环链表模拟约瑟夫(Josephus)环问题

要求:

已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。要求输出出列的过程和最后一个人的编号。 阅读全文