65,210
社区成员
发帖
与我相关
我的任务
分享#include<iostream>
using namespace std;
template <class T>
class Node{
private:
Node<T> *next;
public:
T data;
Node(const T& item,Node<T>* ptrnext=NULL);
Node<T> *NextNode(void) const;
};
template <class T>
Node<T>::Node(const T &item,Node<T> *ptrnext):data(item),next(ptrnext){}
template <class T>
Node<T> *Node<T>::NextNode(void) const
{ return next;}
template <class T>
Node<T> *GetNode(const T&item,Node<T>* nextPtr=NULL)
{ Node<T> *newNode; //
newNode=new Node<T>(item,nextPtr); //为newNode申请空间,调用Node类的构造函数赋值
if(newNode==NULL) {cerr<<"Memory allocation failure!";exit(1);}
return newNode;
}
template <class T>
void InsertFront(Node<T>*&head,T item)
{head=GetNode(item,head);}
template <class T>
void PrintList(Node<T>*head)
{ Node<T>* currPtr=head;
while(currPtr!=NULL){
cout<<currPtr->data<<" ";
currPtr=currPtr->NextNode();
}
}
int main()
{
Node<int> *head;
int item;
cin>>item;
InsertFront(head,item);
cout<<"List:";
PrintList(head);
return 0;}
#include<iostream>
using namespace std;
template <class T>
class Node{
private:
Node<T> *next;
public:
T data;
Node(const T& item,Node<T>* ptrnext=NULL);
Node<T> *NextNode(void) const;
};
template <class T>
Node<T>::Node(const T &item,Node<T> *ptrnext):data(item),next(ptrnext){}
template <class T>
Node<T> *Node<T>::NextNode(void) const
{ return next;}
template <class T>
Node<T> *GetNode(const T&item,Node<T>* nextPtr=NULL)
{ Node<T> *newNode; //
newNode=new Node<T>(item,nextPtr); //为newNode申请空间,调用Node类的构造函数赋值
if(newNode==NULL) {cerr<<"Memory allocation failure!";exit(1);}
return newNode;
}
template <class T>
void InsertFront(Node<T>*&head,T item)
{head=GetNode(item,head);}
template <class T>
void PrintList(Node<T>*head)
{ Node<T>* currPtr=head;
while(currPtr!=NULL){
cout<<currPtr->data<<" ";
currPtr=currPtr->NextNode();
}
}
//记得删除链表
template <class T>
void DeleteList(Node<T>*head)
{ Node<T>* currPtr, *nextPtr;
currPtr = head;
while(currPtr!=NULL){
nextPtr=currPtr->NextNode();
delete currPtr;
currPtr = nextPtr;
}
}
int main()
{
Node<int> *head;
int item;
head = 0; //初始化
cin>>item;
InsertFront(head,item);
cout<<"List:";
PrintList(head);
DeleteList(head);
return 0;}