#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;
}
有序单链表插入算法
最新推荐文章于 2024-08-02 17:45:21 发布