有序单链表插入算法

来源:互联网 发布:淘宝客的链接怎么看 编辑:程序博客网 时间:2024/05/02 04:53
#include <iostream>#include<list>using namespace std;template <class T>struct Node{    T data;    Node<T>* next;};template <class T>//尾插建立循环单链表Node<T>* creat_back( Node<T> * first,int len){    Node<T>* r=first;    for( int i=0; i<len; i++)    {        int data;        cin>>data;        Node<T>* pnew=new Node<T>;        pnew->data=data;        pnew->next=r->next;        r->next=pnew;        r=pnew;    }    r->next=NULL;    return first;}template <class T>//输出链表循环单链表void show(Node<T>* first){    Node<T>* p=first->next;    while(p!=NULL)    {        cout<<p->data<<' ';        p=p->next;    }    cout<<endl<<endl;}template<class T>void Insert(Node<T>* first,int x)//有序单链表的插入{    Node<T>* s=new Node<T>;    s->data=x;    Node<T>* p=first;    while(p->next&&p->next->data<x)        p=p->next;    s->next=p->next;    p->next=s;}int main(){    Node<int >* first=new Node<int>;    first=creat_back(first,5);    show(first);    Insert(first,2);    show(first);    return 0;}

原创粉丝点击