摘要:
templateclass QStack{public: QStack(){} ~QStack(){} void push(T const &); T pop();private: Queue Q1,Q2;};templatevoid QStack::push(T const &e){ //入... 阅读全文
摘要:
templatestruct MyQueue{ void push(T &t) { s1.push(t); } T front() { if(s2.empty()) { if(s1.size() == 0) throw; while(!s1.empty... 阅读全文
摘要:
1.已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列。他的下一个人又从1开始报数,数到m的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。Node* RemoveList(Node* head, int len)... 阅读全文
摘要:
1.代码实现如下node* bubble(node* head, int len){ int nVal = 0; node* pCur=NULL; node* pNext=NULL; //外部循环为len for(int i=0; inext; //内部循环逐次减少 for... 阅读全文
摘要:
解决方案:设立两个指针,一个单步走,一个两步走,当大步指针到达链表尾部的时候,小步指针也正好位于链表中间位置。 阅读全文
摘要:
解决方案:初始两个节点指针Node* p1;Node* p2;p1先遍历K个节点;然后p1和p2同时开始遍历;当p1为NULL时,p2指向的节点即为倒数第K个节点。 阅读全文
摘要:
解决方案:把p所指节点的下一个节点的值赋值给p所指的节点,因此就就可以通过删除p指向的下一个节点。 阅读全文
摘要:
1.两个链表都带有头结点Node* Merge(Node* head1, Node* head2){ if(head1==NULL || head1->next==NULL) return head2; if(head2==NULL || head2->next==NULL) ret... 阅读全文