摘要: templateclass QStack{public: QStack(){} ~QStack(){} void push(T const &); T pop();private: Queue Q1,Q2;};templatevoid QStack::push(T const &e){ //入... 阅读全文
posted @ 2015-04-16 17:08 hy1hy 阅读(130) 评论(0) 推荐(0) 编辑
摘要: templatestruct MyQueue{ void push(T &t) { s1.push(t); } T front() { if(s2.empty()) { if(s1.size() == 0) throw; while(!s1.empty... 阅读全文
posted @ 2015-04-16 16:39 hy1hy 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1.已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列。他的下一个人又从1开始报数,数到m的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。Node* RemoveList(Node* head, int len)... 阅读全文
posted @ 2015-04-16 16:15 hy1hy 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1.代码实现如下node* bubble(node* head, int len){ int nVal = 0; node* pCur=NULL; node* pNext=NULL; //外部循环为len for(int i=0; inext; //内部循环逐次减少 for... 阅读全文
posted @ 2015-04-16 03:03 hy1hy 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 解决方案:设立两个指针,一个单步走,一个两步走,当大步指针到达链表尾部的时候,小步指针也正好位于链表中间位置。 阅读全文
posted @ 2015-04-16 02:34 hy1hy 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 解决方案:初始两个节点指针Node* p1;Node* p2;p1先遍历K个节点;然后p1和p2同时开始遍历;当p1为NULL时,p2指向的节点即为倒数第K个节点。 阅读全文
posted @ 2015-04-16 02:32 hy1hy 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 解决方案:把p所指节点的下一个节点的值赋值给p所指的节点,因此就就可以通过删除p指向的下一个节点。 阅读全文
posted @ 2015-04-16 02:26 hy1hy 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 1.两个链表都带有头结点Node* Merge(Node* head1, Node* head2){ if(head1==NULL || head1->next==NULL) return head2; if(head2==NULL || head2->next==NULL) ret... 阅读全文
posted @ 2015-04-16 02:17 hy1hy 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 1.辅助指针void ReverseList(LinkList* ListHead){ if(NULL==ListHead || NULL==ListHead->next) return; LinkList* pPre=ListHead; LinkList* pCur=ListHead-... 阅读全文
posted @ 2015-04-15 22:53 hy1hy 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 解决方案:1.找出链表1的环入口节点a1,链表2的环入口节点a2;2.如果a1=a2; 说明两个链表可能在入环之前或者入环第一个节点相交;将a1,a2作为两个链表的最后一个节点,转化为不带环的链表相交;其实在这种情况下已经说明两个链表已经相交了。3.如果a1!=a2;以a1为基准节点进行while循... 阅读全文
posted @ 2015-04-15 22:22 hy1hy 阅读(268) 评论(0) 推荐(0) 编辑