共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									#include "stdlib.h" 
#include "stdio.h" 
#include "string" 
#include "iostream" 
using namespace std; 
template class T 
class sq_List 
{ 
     public: 
      sq_List(int c,int l){cap = c;len = l;} //构造函数,初始化表长度和空间容量  
      void creat_List();   //创建空的顺序表  
      T check_List();      //检测顺序表的状态  
      void input_List();   //输入顺序表的元素        
      T *insert_List(int pos,int num); //插入元素  
      T *delete_List(int pos);//删除元素  
      void show_List();    //输出新表 
      void free_List();   //释放空间  
             
     private: 
      int cap;   //存储空间容量  
      int len;   //顺序表的长度  
      T *p;      //模板类型指针                
}; 
//建立空的顺序表  
template class T 
void sq_ListT::creat_List() 
{      
     p = new T[cap]; //指向动态开辟的一维数组空间的首地址      
          
} 
//检测顺序表  
template class T 
T sq_ListT::check_List() 
{ 
     if(cap == len) return -1; 
     else if(len == 0) return 0; 
     else return 1;  
} 
//输入顺序表的元素,输出  
template class T 
void sq_ListT::input_List() 
{ 
     int i; 
     for(i = 0;ilen;i++)     //输入顺序表的元素  
     cin  *(p+i);          
      
     for(i = 0;ilen;i++)     //输出顺序表的元素       
     cout  *(p+i)  " "; 
      
     cout  endl; 
                         
} 
//插入元素  
template class T 
T *sq_ListT::insert_List(int pos_in,int num) 
{ 
                                
     int i; 
     if(cap == len) cout  "上溢错误"  endl;//顺序表已满的情况  
     if(pos_inlen) pos_in = len+1;        //插入位置在表的最后一个元素之后,表中元素不需要移动  
     if(pos_in1) pos_in = 1;   //插入元素在表的第一个元素之前,需要移动 表的所有元素  
      
     for(i = len;i=pos_in;i--)  
     p = p[i-1]; 
      
     p[pos_in-1] = num;    //插入新元素  
     len++;             //表长度加一  
     return p;          //返回首地址  
                          
} 
//删除元素  
template class T 
T *sq_ListT::delete_List(int pos_de) 
{ 
     int i; 
     if(len == 0)  cout  "下溢错误"  endl; //顺序表为空表,表中没有元素  
     if(pos_de1||pos_de=len) cout  "没有这个元素"  endl;//表中没有待删除的元素  
     for(i = pos_de;ilen;i++) 
     p[i-1] = p; 
     len--;               //表长度减一  
      
                                    
} 
//输出顺序表  
template class T 
void sq_ListT::show_List() 
{ 
     int i; 
     for(i = 0;ilen;i++)     //输出顺序表的元素       
     cout  *(p+i)  " ";                     
} 
//释放空间  
template class T 
void sq_ListT::free_List() 
{ 
     delete []p;      
} 
int main() 
{ 
     sq_Listint list(10,7); 
     list.creat_List(); 
     list.input_List(); 
     list.check_List(); 
     list.insert_List(5,26); 
     list.delete_List(8);      
     list.show_List(); 
     list.free_List(); 
          
     system("pause"); 
     return 0;      
         
} 
							 
							 
							 
							  
							  
							  楼主 2016-01-28 14:11 回复
						 
						 
           
          
          
         
   
         
      
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知