C++单链表(下标n到下标m的逆序)
#include <iostream> using namespace std; template<typename T> struct Node { T data; Node *next; Node():next(NULL){} }; template<typename T> class List { public: List() { head = new Node<T>(); } void Insert(T x) { Node<T> *s = new Node<T>(); s->data = x; s->next = head->next; head->next = s; } void Sort(int x,int y) { Node<T> *p = head; Node<T> *q = head; Node<T> *m=p; Node<T> *z=p->next; y++; while(x>=0) { m=p; z=m->next; p=p->next; x--; } while(y>=0) { q=q->next; y--; } Node<T> *n = p->next; while(n!=q) { Node<T> *k = n->next; n->next=p; p=n; n=k; } m->next=p; z->next=q;//注意保存指针,明确指向。 } void Show() { Node<T> *p = head->next; while(p!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<endl; } private: Node<T> *head; }; int main() { List<int> list; for(int i=0;i<10;i++) { list.Insert(i); } list.Sort(3,6); list.Show(); return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。