摘要:
实现把单循环链表例置算法的思考过程:第一:需要保存临时数据的变量,不然无法完成倒置。第二:要完成倒置就需要遍列,又需要一个变量第三:用于得到最后的结果,这个暂时考虑也需要一个变量单个节点的倒置是本身,1->1两个节点的倒置1->2,可以参考两个数的交换,这就需要临时变量了 p=head; 1q=head->next; 2s =p ; 1q->next = s;2->1p->next =q; 1->2->1三个节点。。。。。。。//这样得到了头指针*p=head;//2。完成遍列的代码 *q=head->next;while(q!=head) 阅读全文
摘要:
约瑟夫环问题可以简单的使用数组的方式实现,但是现在我使用循环链表的方法来实现,因为上午看到一道面试题规定使用循环链表解决约瑟夫环问题。 什么是约瑟夫环? “约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。”(百度百科中的解决办法列出了很多,可以看到循环链表并不是最简单的方法) 这道面试题考察了循环链表的“创建”,“遍历”和“删除”。创建的循环链表的结构图:解决约瑟夫环问题的过程#includeusing ... 阅读全文
摘要:
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘中都会考到。。首先来看看题目是如何要求的(百度迅雷校招笔试题)。题目:用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba。。一、全排列的递归实现为方便起见,用123来示例下。123的全排列有123、132、213、231、312、321这六种。首先考虑213和321这二个数是如何得出的。显然这二个都是123中的1与后面两数交换得到的。 阅读全文