Problem1402--类的练习--设计一个单向链表类模板

1402: 类的练习--设计一个单向链表类模板

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 14  Solved: 5
[Submit] [Status] [Web Board] [Creator:]

Description

设计一个单向链表类模板,节点数据域中数据从小到大排列,并设计插入、删除节点的成员函数。

主函数中创建单向链表类对象,进行删除一个元素,插入一个元素测试。

template<typename T>class List;
template<typename T>class Node{
T info;                                     
Node<T> *link;                            
public:
Node();                                  
Node(const T & data);
friend class List<T>;
};
template<typename T>class List{
Node<T> *head;     
public:
List();                 
~List();                 
void MakeEmpty();       
Node<T>* Find(T data);   
void PrintList();              
void InsertOrder(Node<T> *p);  
Node<T>* CreatNode(T data);    
Node<T>* DeleteNode(Node<T>* p); 
};
在主函数中

int main(){
Node<int> * P1;
List<int> list1;
int a[10]={20,12,0,-5,9,-18,6,11,5,3},i,j;
for(i=0;i<10;i++){
P1=list1.CreatNode(a[i]);
list1.InsertOrder(P1);
}
list1.PrintList();
cout<<"请输入一个要删除的整数"<<endl;
cin>>j;
P1=list1.Find(j);
if(P1!=NULL){
P1=list1.DeleteNode(P1);
delete P1;
list1.PrintList();
}
else cout<<"未找到"<<endl;
cout<<"请输入一个要求插入的整数"<<endl;
cin>>j;
P1=list1.CreatNode(j);
list1.InsertOrder(P1);
list1.PrintList();
list1.MakeEmpty();//Çå¿Õlist1
list1.PrintList();
return 0;
}


Output

-18     -5      0       3       5       6       9       11      12      20

请输入一个要求删除的整数
6
-18     -5      0       3       5       9       11      12      20
请输入一个要求插入的整数
17
-18     -5      0       3       5       9       11      12      17      20

Sample Input

-5
7

Sample Output

-18     -5      0       3       5       6       9       11      12      20
-18     0       3       5       6       9       11      12      20
-18     0       3       5       6       7       9       11      12      20

Source/Category

 

[Submit] [Status]