线性表顺序存储总结

顺序存储,无非就是数组

首先创建SeqList.h头文件用以包含基本构造函数,及其功能实现再新建一个SeqList.cpp。代码实现用模板类定义:

//SeqList.h
const int MaxSize=100;
template
class SeqList{
	public:
		SeqList(){
			length=0;
		}
		SeqList(T a[],int n);//有参构造函数 
		~SeqList(){};//析构函数 
		int GetLength(){
			return length;
		} 
		T Get(int i);
	    //去顺序表中第i个元素 
		void Set(int i,T x);
        void Insert(int i, T x);        // 在顺序表中第i个位置插入元素x
   		T Delete(int i);                // 删除顺序表的第i个元素
   		int Locate(T x); 
   		void PrintList();
		private:
			T data[MaxSize];
			int length;
}; 

*************

//SeqList.cpp
#include
#pragma hdrstop
#include "SeqList.h"
using namespace std;
template
SeqList::SeqList(T a[],int n){
	if(n>MaxSize)
	throw "参数非法";
	for(int i=0;i
void SeqList::Insert(int i, T x)
{ int j;
  if (length>=MaxSize) throw "上溢";
  if (i<1 || i>length+1) throw "位置错误";
  for (j=length; j>=i; j--)
       data[j]=data[j-1];   //注意第j个元素存在数组下标为j-1处
  data[i-1]=x;
  length++;
}
//  删除函数Delete,删除顺序表中第i个元素
template  
T SeqList::Delete(int i)
{ int j;
  if (length==0 ) throw "下溢";
  if (i<1 || i>length) throw "位置错误";
  T x=data[i-1];
  for (j=i; j
int SeqList::Locate(T x)
{
  for(int i=0;i
T SeqList::Get(int i)
{ if (i>0 && i<=length)
     return data[i-1];
  else
   { T stu;
	 return stu;
   }
}
//增加的,设定线性表第i个元素 
template 
void SeqList::Set(int i,T x)
   { if (1<=i && i<=length+1) 
            data[i-1]=x;
       else 
          throw "位置出错";
}
template 
void SeqList::PrintList(){
	for(int i=0;i

测试类

//SeqListdemo1.cpp
#include
#include "SeqList.cpp"
using namespace std;
int main(){
	SeqList d;
	try{
		d.Insert(1,10);
		d.Insert(2,20);
		d.Insert(3,30);
		cout<<"按位查找第二个元素:"< g(a,7);
		cout<<"在第三个位置上插入元素8"<

 

你可能感兴趣的:(笔记)