/**设计一个算法,复制一个单链表**/
#include "iostream"
//#include "cstlib"
using namespace std;
template
struct Node
{
Node(const T& e=T(),Node* next=NULL):element(e),link(next){}
T element;
Node* link;
};
template
class ANode
{
public:
ANode();
bool NewNode(T e);
ANode copyANode(ANode p);
void printList();
void DeleteAnode(ANode p);
private:
Node* head;
};
template
ANode::ANode()
{
head=new Node(0,NULL);
}
template
bool ANode::NewNode(T e)
{
Node* temp=new Node(e,NULL);
if(head->link==NULL)
{
head->link=temp;
//cout<element<}
else
{
Node* y=head;
for(;y->link!=NULL;y=y->link);
y->link=temp;
//cout<element<}
//cout<return (temp!=NULL);
}
template
ANode ANode::copyANode(ANode p)
{
ANode x;
Node* temp;
for(temp=p.head->link;temp!=NULL;temp=temp->link)
{
x.NewNode(temp->element);
}
return x;
}
template
void ANode::printList()
{
Node* temp;
for(temp=head->link;temp!=NULL;temp=temp->link)
{
cout<element<<',';
}
cout<}
template
void ANode::DeleteAnode(ANode p)
{
Node* temp;
for(temp=head;temp->link!=NULL;head=head.link)
{
temp=head;
temp->link=null;
}
}
int main()
{
ANode x;
x.NewNode(3);
x.NewNode(9);
x.NewNode(1);
x.NewNode(6);
ANode p=x.copyANode(x);
p.printList();
return 0;
}
阅读(1370) | 评论(0) | 转发(0) |