#include <iostream> using namespace std; class LNode { friend class List; public: LNode():m(0),next(0){} private: int m; int num; LNode *next; }; class Head { friend class List; public: Head():top(0),rear(0){} private: LNode *top; LNode *rear; }; class List { public: bool Insert(Head &p,int e); bool traverse(Head &p,int m); bool ss(Head &p) { int s=0; LNode *q=p.top; while(q) { cout<<q->m<<' '; q=q->next; s++; if(s>10) return true; } } static int s; }; int List::s=1 ; bool List::traverse(Head &p,int m) { LNode *q=p.top; int j=1; while(q!=q->next) { j=1; while(j!=m-1) { q=q->next; j++; } LNode *h=q->next; m=h->m; cout<<h->num<<' '; q->next=h->next; q=h->next; delete h; } return true; } bool List::Insert(Head &p,int e) { LNode *q=new LNode; if(!q) return false; q->m=e; q->num=s++; if(p.top!=0&&p.rear!=0) { p.rear->next=q; p.rear=q; p.rear->next=p.top; } else { p.top=p.rear=q; } return true; } int main() { int n; cin>>n; int e; Head p; List l; while(n--) { cin>>e; l.Insert(p,e); } //l.ss(p); l.traverse(p,5); return 0; }
第一次用類實現比較繁瑣的問題額~~~~juststeps