单链表基本操作实现

来源:互联网 发布:java中static修饰变量 编辑:程序博客网 时间:2024/06/06 03:34
#include<iostream>#include<stack>using namespace std;class List{private:struct Node{int data;Node *next;Node(const int &d){data=d;next=NULL;}};Node *head;public:List(){creat_List();}void creat_List();void insert(const int &d); void print();void sort();void insert_pos(const int &d, const int &d1);void erase(const int &d);void reverse();Node * find(const int &d){Node *p=head;for(;p;p=p->next)if(p->next->data==d)return p;return p;}};void List::creat_List(){head=new Node(0);}void List::insert(const int &d){Node *p=new Node(d);p->next=head->next;head->next=p;delete p;p=NULL;}void List::print(){ Node *p=head->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;}void List::sort(){Node *p=head->next;for(;p;p=p->next){for(Node *q=p->next;q;q=q->next){if(p->data<q->data)swap(p->data,q->data);}}}void List::insert_pos(const int &d, const int &d1){Node *p=find(d);Node *q=new Node(d1);q->next=p->next;p->next=q;}void List::erase(const int &d){Node *p=find(d);Node *q=p->next;p->next=p->next->next;delete q; }void List::reverse(){Node *p=head->next;stack<Node *> m;while(p){m.push(p);p=p->next;}Node *q=head;while(!m.empty()){q->next=m.top();q=m.top();m.pop();}q->next=NULL;}int main(){List list;list.insert(5);list.insert(6);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 list.insert(4);list.sort();list.insert_pos(5,3);list.erase(4);list.print();list.reverse();list.print();return 0;} 

原创粉丝点击