arrayinteger.cpp
来自「SimpleGraphicOperatingSystem 32位图形化操作系统 」· C++ 代码 · 共 131 行
CPP
131 行
#include <System.h>
namespace System{
ArrayInteger::ArrayInteger()
{
count = 0;
firstItem = (ArrayIntegerItem*)0;
}
ArrayInteger::~ArrayInteger()
{
}
ArrayIntegerItem* ArrayInteger::FirstItem()
{
return firstItem;
}
ArrayIntegerItem* ArrayInteger::LastItem()
{
ArrayIntegerItem* p=firstItem;
while( p && p->next )
p = p->next;
return p;
}
ArrayIntegerItem* ArrayInteger::GetItemByIndex(int index)
{
ArrayIntegerItem* p;
int i=0;
if( index < 0 || index >= count )
return (ArrayIntegerItem*)0;
for( p=firstItem; p; p = p->next, i++ )
{
if( i==index )
{
return p;
}
}
return (ArrayIntegerItem*)0;
}
int ArrayInteger::GetIndexByItem( ArrayIntegerItem* item )
{
int index=0;
ArrayIntegerItem* p;
for( p = firstItem; p; p = p->next, index ++ )
{
if( p == item )
{
return index;
}
}
return -1;
}
int ArrayInteger::Add( int n )
{
Add( -1, n );
return true;
}
int ArrayInteger::Add( int preIndex, int n )
{
ArrayIntegerItem* pre = GetItemByIndex( preIndex );
ArrayIntegerItem* p = new ArrayIntegerItem;
if( pre == null )
pre = LastItem();
if( pre ){
if( pre->next ){
pre->next->pre = p;
}
pre->next = p;
}else{
firstItem = p;
}
p->pre = pre ;
p->element = n;
count ++;
return true;
}
int& ArrayInteger::operator[]( int index )
{
ArrayIntegerItem* item = GetItemByIndex( index );
return item->element;
}
int ArrayInteger::Remove( int index )
{
if( index < 0 || index >= count )
return false;
ArrayIntegerItem* item = GetItemByIndex( index );
if( item ){
if( item->pre )
{
item->pre->next = item->next;
}else{
firstItem = item->next;
}
if( item->next )
{
item->next->pre = item->pre;
}
count --;
delete item;
return true;
}
return false;
}
int ArrayInteger::Count()
{
return count;
}
int ArrayInteger::Size()
{
return count;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?