数据结构——顺序表
文件SquenceList.h
include <stdio.h>
#include <string.h>
# define MAXSIZE 100
using namespace std;
class SquenceList{
private:
int data[MAXSIZE];
int count;
public:
SquenceList(){
count = 0;
memset(data,4*MAXSIZE,4*MAXSIZE);};
~SquenceList(){};
bool IsEmpty();
bool IsFull();
int IsExist(int value);
bool Insert(int value);
bool Delete(int value);
void Print();
};
bool SquenceList::IsEmpty()
{
return count==0?true:false;
}
bool SquenceList::IsFull()
{
return count==MAXSIZE?true:false;
}
int SquenceList::IsExist(int value)
{
for(int i = 0;i < count;i++){
if(data[i] == value){
return i;
}else{
continue;
}
}
return -1;
}
bool SquenceList::Insert(int value)
{
if(!IsFull())
{
data[count] = value;
count += 1;
return true;
}else{
cout << "SquenceList is full." << endl;
return false;
}
}
bool SquenceList::Delete(int value)
{
if(IsEmpty())
{
cout << "SquenceList is empty." << endl;
return false;
}
int index = IsExist(value);
if(index < 0){
cout << "Value not in SquenceList." << endl;
return false;
}else{
for(int i = index;i < count;i++){
data[i] = data[i+1];
}
data[count - 1] = 0;
count -= 1;
return true;
}
}
void SquenceList::Print(){
if(IsEmpty()){
cout << "SquenceList is empty." << endl;
return;
}
for(int i = 0;i < count;i++){
cout << "data[" << i << "]" << "=" << data[i] << endl;
}
}
#endif
文件main.cc
# include "SquenceList.h"
int main(int argc,char ** argv){
SquenceList sl;
sl.Print();
sl.Insert(10);
sl.Insert(20);
sl.Insert(30);
sl.Insert(40);
sl.Insert(50);
sl.Print();
sl.Delete(30);
cout << " after sl.Delete(30)" << endl;
sl.Print();
cout << " after sl.Delete(60)" << endl;
sl.Delete(60);
return 0;
}
输出为:
[root@localhost DataStruct]# ./a.out
SquenceList is empty.
data[0]=10
data[1]=20
data[2]=30
data[3]=40
data[4]=50
after sl.Delete(30)
data[0]=10
data[1]=20
data[2]=40
data[3]=50
after sl.Delete(60)
Value not in SquenceList.