数据结构与算法
郑敬儒~
梅卡德尔
展开
-
纸牌游戏-小猫钓鱼
这里写目录标题游戏介绍算法思路分析代码实现游戏介绍有两个人在玩纸牌游戏,游戏规则:将一副扑克牌平均分成两份,每人拿一份。A先拿出手中的第一张扑克牌放在桌上,然后B也拿出手中的第一张扑克牌,并放在A刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并放到自己手中牌的末尾。当任意一人手中的牌全部出完时,游戏结束,对手获胜。问题:加入游戏开始时,A手中有6张牌,顺序为 2 4 1 2 5 6,B手中也有6张牌,顺序为 3原创 2020-05-19 18:33:51 · 1696 阅读 · 0 评论 -
用栈实现回文字符串的判断
用栈实现回文字符串的判断栈是一种后进先出的数据结构,它只能在一段进行插入和删除操作。例如一个字符串"12321",像这种 ,无论正读反读均相同的字符序列,就叫做回文字符串。首先,我们需要读取这行字符串,并求出字符串的长度。 char a[101]; int len; gets(a); len=strlen(a);如果一个字符串是回文的话,那么它必须是中间对称的,我们需要求中点,即: mid=len/2-1;接下来将会涉及到栈的应用;我们先将mid之前的字符全部入栈。因为这里的栈是用原创 2020-05-14 16:42:46 · 19197 阅读 · 11 评论 -
用两个数组模拟链表
这里写目录标题思路分析代码实现思路分析我们知道链表中的每个节点有两个部分,分别为数据域和指针域。我们可以用两个数组来模拟链表中每个节点所对应的部分。我们首先可以用一个整形数组data来存放序列中的数字,另一个数组right来 存放当前序列中每个元素右边的元素在数组data中的位置。如下图所示:例如right[1]的值为 2,就表示当前序列中1号元素右边的元素从放在 data[2] 中; 如果是 0,例如 right[9] 的值为 0,就表示当前序列中9号元素的右边没有元素。现在需要在8前面插入原创 2020-05-19 18:58:21 · 346 阅读 · 0 评论