基于链表编写“猫吃老鼠”
http://pan.baidu.com/s/1nvaTki1 这是一个简单的链表操作问题 "现有n个老鼠围成一圆圈,有一只猫从任意位置开始吃老鼠,每次都隔一个老鼠吃,请给出最后一个老鼠的编号?" 题目的具体要求是给出任给老鼠数n,输出猫最后吃的老鼠的编号。 思考这样的一个问题,由于涉及到从数据队列中间删除数据(相对于从开头和结尾删除数据),所以需要使用链表。 在现在的编程环境中,链表的操作可以使用std,也可以使用自己编写的链表。由于这里是kata,所以两种方式都采用。 链表分为单向链表和双向链表,由于“猫吃老鼠”是一个单向循环的操作,所以采用单向链表就可以。 首先定义数据结构 typedefstructMouseNode { intiNO; MouseNode*pNext; MouseNode(){iNO=0;pNext=nullptr;} MouseNode(inti){iNO=i;pNext=nullptr;} }; 老鼠的结构,除了自己的编号,关键的是定义了下一个指向。 然后编写“吃老鼠动作” MouseNode*C猫吃老鼠链表操作Dlg::CatEatmouses(Mo...