#include"Header.h"
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
class AList:public List
{
private:
int listSize;
int curr;
int maxSize;
int *listArray;
public:
AList(int value=10)
{
listArray=new int[value];
curr=listSize=0;
maxSize=value;
}
AList(const AList& it)
{
listSize=it.listSize;
curr=it.curr;
maxSize=it.maxSize;
listArray=it.listArray;
}
void operator=(const AList& it)
{
listSize=it.listSize;
curr=it.curr;
maxSize=it.maxSize;
listArray=it.listArray;
}
~AList()
{
delete[] listArray;
}
void clear()
{
listSize=curr=0;
for(int i=0;i<maxSize;i++)
{
listArray[i]=0;
}
}
void insert(const int it)
{
for(int i=listSize;i>0;i--)
{
listArray[i]=listArray[i-1];
}
listArray[curr]=it;
listSize++;
}
void append(const int it)
{
listArray[listSize]=it;
listSize++;
}
int remove()
{
int temp;
temp=listArray[curr];
for(int i=curr;i<listSize-1;i++)
{
listArray[i]=listArray[i+1];
}
listSize--;
return temp;
}
void prev()
{
curr=curr-1;
}
void next()
{
curr=curr+1;
}
void moveToStart()
{
curr=0;
}
void moveToEnd()
{
curr=listSize-1;
}
int length()
{
return listSize;
}
int getValue()
{
return listArray[curr];
}
void setPos(int a)
{
curr=a;
}
void show()
{
for(int i=0;i<listSize;i++)
{
cout<<listArray[i]<<" ";
}
}
void remove2(int num)
{
int i;
for(i=0;i<listSize;i++)
{
if(listArray[i]==num)
break;
}
setPos(i);
remove();
moveToStart();
}
};
int main()
{
int it;
AList a(5);
for(int i=0;i<5;i++)
{
cin>>it;
a.insert(it);
}
a.show();
cout<<endl;
a.remove2(15);
a.show();
cout<<endl;
return 0;
}
C++实现链表(linked list)
最新推荐文章于 2024-07-12 23:24:36 发布