循环链表的相关操作。

循环(单)链表的建立、查询、插入和删除完整代码可以分享一下吗?感谢!

#include
using namespace std;
template
struct node
{
T date;
node *next;
};
template
class link
{
public:
link();
~link(){}
void insert(int i,T x);
void show();
private:
node *head;
};
template
link::link()
{
head=new node;
head->next=head;
}
template
void link::insert(int i,T x)
{
node *newnode;
newnode=new node;
newnode->date=x;
int j=1;
node *p;
p=head;
while(j {
p=p->next;
j++;
}
newnode->next=p->next;
p->next=newnode;
}
template
void link::show()
{
node *p;
p=head->next;
while(p != head)
{
cout<date<<" ";
p=p->next;
}
cout< /*for(int j=0;j {
if(p==head)
{
p=p->next;
cout< }
coutdate<<" ";
p=p->next;

}
cout<<endl;*/

}

查询 和 删除 没写