静态数组实现线性表
List.h:
/*--List.h----------------------------------------------------------------------------
這個(gè)頭文件定義了用于處理線性表的List數(shù)據(jù)類型
基本操作包括
構(gòu)造函數(shù)
empty:檢查線性表是否為空
insert:插入一個(gè)項(xiàng)
erase:刪除一個(gè)項(xiàng)
display:輸出列表
----------------------------------------------------------------------------------------*/
#include <iostream>
#ifndef LIST
#define LIST
const int CAPCITY=1024;
typedef int ElementType;
class List
{
public:
/************函數(shù)成員*************/*
??/*******構(gòu)造函數(shù)***********/
??List();
??bool empty() const;
??void insert(ElementType item,int pos);
??void erase(int pos);
??void display() const;
private:
/*************數(shù)據(jù)成員***********/
??int mySize;//當(dāng)前線性表的大小
??ElementType myArray[CAPCITY];//存儲(chǔ)線性表的數(shù)組
};
#endif
List.cpp #include "List.h"
#include <iostream>
using namespace std;
List::List()
{
??mySize=0;
}
bool List::empty() const
{
??return mySize==0;
}
void List::display() const
{
??for(int i=0;i<mySize;i++)
??{
????cout<<myArray[i]<<"\t";
??}
}
void List::insert(ElementType item, int pos)
{
??if(mySize == CAPCITY)
??{
????cout<<"空間不夠,無(wú)法插入元素!"<<endl;
????return ;
??}
??if(pos<0 || pos>mySize)
??{
????cout<<"插入位置錯(cuò)誤!"<<endl;
????return;
??}
????
??for(int i=mySize;i>pos;i--)
??{
????myArray[i]=myArray[i-1];
??}
????myArray[pos]=item;
????mySize++;
????
}
void List::erase(int pos)
{
??if(mySize==0)
??{
????cout<<"線性表長(zhǎng)度為0,無(wú)法刪除!"<<endl;
????return;
??}
??if(pos<0 || pos>=mySize)
??{
????cout<<"刪除位置錯(cuò)誤!"<<endl;
????return;
??}
??for(int i=pos;i<mySize;i++)
??{
????myArray[i]=myArray[i+1];
??}
??mySize--;
}
檢測(cè)用的ListMain.cpp #include <iostream>
#include "List.h"
using namespace std;
int main()
{
??List intList;
??cout<<"構(gòu)造線性表"<<endl;
??if(intList.empty())
??{
????cout<<"線性表:"<<"intList"<<"為空!"<<endl;
??}
??for(int i=0;i<9;i++)
??{
????cout<<"將"<<i<<"插入到位置"<<i/2<<"處"<<endl;
????intList.insert(i,i/2);
????intList.display();
????cout<<endl;
??}
??cout<<"intList是否為空?"<<(intList.empty()?"YES":"NO")<<endl;
??cout<<"在-1處插入元素!"<<endl;
??intList.insert(0,-1);
??cout<<"在10處插入元素!"<<endl;
??intList.insert(0,10);
??int index;
??cout<<endl;
??while(!intList.empty())
??{
????cout<<"請(qǐng)選擇要?jiǎng)h除元素的位置:"<<endl;
????cin>>index;
????intList.erase(index);
????intList.display();
????cout<<endl;
??}
??cout<<"intList 為空!"<<endl;
??cout<<"插入"<<CAPCITY<<"個(gè)整數(shù)"<<endl;
??for(int i=0;i<CAPCITY;i++)
????intList.insert(i,i);
??cout<<"再插入一個(gè)整數(shù)"<<endl;
??intList.insert(-1,0);
}
/*--List.h----------------------------------------------------------------------------
這個(gè)頭文件定義了用于處理線性表的List數(shù)據(jù)類型
基本操作包括
構(gòu)造函數(shù)
empty:檢查線性表是否為空
insert:插入一個(gè)項(xiàng)
erase:刪除一個(gè)項(xiàng)
display:輸出列表
----------------------------------------------------------------------------------------*/
#include <iostream>
#ifndef LIST
#define LIST
const int CAPCITY=1024;
typedef int ElementType;
class List
{
public:
/************函數(shù)成員*************/*
??/*******構(gòu)造函數(shù)***********/
??List();
??bool empty() const;
??void insert(ElementType item,int pos);
??void erase(int pos);
??void display() const;
private:
/*************數(shù)據(jù)成員***********/
??int mySize;//當(dāng)前線性表的大小
??ElementType myArray[CAPCITY];//存儲(chǔ)線性表的數(shù)組
};
#endif
List.cpp #include "List.h"
#include <iostream>
using namespace std;
List::List()
{
??mySize=0;
}
bool List::empty() const
{
??return mySize==0;
}
void List::display() const
{
??for(int i=0;i<mySize;i++)
??{
????cout<<myArray[i]<<"\t";
??}
}
void List::insert(ElementType item, int pos)
{
??if(mySize == CAPCITY)
??{
????cout<<"空間不夠,無(wú)法插入元素!"<<endl;
????return ;
??}
??if(pos<0 || pos>mySize)
??{
????cout<<"插入位置錯(cuò)誤!"<<endl;
????return;
??}
????
??for(int i=mySize;i>pos;i--)
??{
????myArray[i]=myArray[i-1];
??}
????myArray[pos]=item;
????mySize++;
????
}
void List::erase(int pos)
{
??if(mySize==0)
??{
????cout<<"線性表長(zhǎng)度為0,無(wú)法刪除!"<<endl;
????return;
??}
??if(pos<0 || pos>=mySize)
??{
????cout<<"刪除位置錯(cuò)誤!"<<endl;
????return;
??}
??for(int i=pos;i<mySize;i++)
??{
????myArray[i]=myArray[i+1];
??}
??mySize--;
}
檢測(cè)用的ListMain.cpp #include <iostream>
#include "List.h"
using namespace std;
int main()
{
??List intList;
??cout<<"構(gòu)造線性表"<<endl;
??if(intList.empty())
??{
????cout<<"線性表:"<<"intList"<<"為空!"<<endl;
??}
??for(int i=0;i<9;i++)
??{
????cout<<"將"<<i<<"插入到位置"<<i/2<<"處"<<endl;
????intList.insert(i,i/2);
????intList.display();
????cout<<endl;
??}
??cout<<"intList是否為空?"<<(intList.empty()?"YES":"NO")<<endl;
??cout<<"在-1處插入元素!"<<endl;
??intList.insert(0,-1);
??cout<<"在10處插入元素!"<<endl;
??intList.insert(0,10);
??int index;
??cout<<endl;
??while(!intList.empty())
??{
????cout<<"請(qǐng)選擇要?jiǎng)h除元素的位置:"<<endl;
????cin>>index;
????intList.erase(index);
????intList.display();
????cout<<endl;
??}
??cout<<"intList 為空!"<<endl;
??cout<<"插入"<<CAPCITY<<"個(gè)整數(shù)"<<endl;
??for(int i=0;i<CAPCITY;i++)
????intList.insert(i,i);
??cout<<"再插入一個(gè)整數(shù)"<<endl;
??intList.insert(-1,0);
}
轉(zhuǎn)載于:https://blog.51cto.com/lp4083331/200018
總結(jié)
- 上一篇: 退一步海阔天空
- 下一篇: Request.UrlReferrer详