[C++]线性链表之单链表
[文档整理系列] 线性链表之单链表
/*
问题描述:线性表____链表_____单链表 
@date 2017-3-7 
*/ 
#include<iostream>
using namespace std;
template<typename T>
struct node{
	T data;
	node<T> *next;
};
template<typename T>
class LinkedList{
    public:
    	LinkedList();    
		LinkedList(T arr[],int n);  
		~LinkedList();   
		int getLength();  
		void InsertAt(int n,T data);  
		T DeleteAt(int i);     
		T   GetData(int i);      
		int getDataAt(T data);   
		void Print(); 
	private:
	    int length;
		node<T> *first;   
};
template <class T>  
LinkedList<T>::LinkedList(){
    first = new node<T>;
	first->next = NULL;    
	length = 0;	
} 
template <class T>  
LinkedList<T>::LinkedList(T arr[],int n){
    first = new node<T>();   //初始化指针变量  
    first->next = NULL;     
    
    for(int i = 0;i<n;i++){
    	node<T> s;
    	s.data = arr[i];
    	s.next = first->next;
    	first->next = &s;
	}
	
    length = n;
	cout<<"初始化成功!"<<endl;  //test
}
 
template<typename T>
LinkedList<T>::~LinkedList(){   
   node<T> *q;
   while (first)                         //释放单链表的每一个结点的存储空间
   {
     q=first;                            //暂存被释放结点
     first=first->next;                  //工作指针p指向被释放结点的下一个结点,使单链表不断开
     delete q;    
}
   cout<<"析构(销毁)成功!"<<endl;	 //test
}
template<typename T>
int LinkedList<T>::getLength(){
	return length;
}
template< typename T> 
void LinkedList<T>::InsertAt(int n,T data){
    
	cout<<"成功插入第"<<n<<"个位置!"<<endl;
}
  
int main(){
    int arr[6]={7,19,4,5,6,9};
    LinkedList<int> t(arr,6);  
//    t.InsertAt(7,689); 
	return 0;
}
 
    
    本文作者:
        千千寰宇
    
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号