天天看點

c++資料結構之順序表

2007-11-22 21:08

//SeqList.h

class SeqList

{

protected:

DataType *list;

int maxsize;

int size;

public:

SeqList(int max=0);

~SeqList(void);

int Size(void)const;

void Insert(int i,const DataType& item);

DataType Delete(const int i);

DataType GetData(int i)const;

};

//構造函數

SeqList::SeqList(int max)

maxsize = max;

size = 0;

list = new DataType[maxsize];

}

//析構函數

SeqList::~SeqList(void)

delete []list;

//插入

void SeqList::Insert(int i,const DataType& item)

if(size==maxsize)

   cout<<"空間已滿,無法插入!"<<endl;

exit(0);

if(i<0||i>size)

   cout<<"輸入參數錯誤!"<<endl;

   exit(0);

for(int j=size;j>i;j--)

   list[j] = list[j-1];

list[i] = item;

size++;

//取元素

DataType SeqList::GetData(int i)const

   cout<<"該值不存在!"<<endl;

return list[i];

//删除

DataType SeqList::Delete(const int i)

if(i<0||i>size-1)

   cout<<"要删除的值不存在!"<<endl;

if(size==0)

   cout<<"無可删除的值了"<<endl;

DataType x=list[i];

for(int j=i;j<size-1;j++)

   list[j] = list[j+1];

size--;

return x;

//反回大小

int SeqList::Size(void)const

return size;

//list.cpp

//測試函數,一次輸入1-10,删除5,最後輸出結果

#include<iostream>

using namespace std;

typedef int DataType;

#include "SeqList.h"

int main()

SeqList myList(100);

for(int n=0;n<10;n++)

   myList.Insert(n,n+1);

myList.Delete(4);

for(int i=0;i<myList.Size();i++)

   cout<<myList.GetData(i)<<endl;

return 0;

本文轉自懸魂部落格園部落格,原文連結:http://www.cnblogs.com/xuanhun/archive/2010/02/03/1662414.html,如需轉載請自行聯系原作者