您好,登錄后才能下訂單哦!
線性表是具有相同類型的n個(gè)數(shù)據(jù)元素的有限序列A0,A1,A2,...,An-1。Ai是表項(xiàng),n是表的長(zhǎng)度。
線性表的表現(xiàn)形式:
A、零個(gè)或多個(gè)數(shù)據(jù)元素組成的集合
B、數(shù)據(jù)元素在位置上是有序排列的
C、數(shù)據(jù)元素的個(gè)數(shù)是有限的
D、數(shù)據(jù)元素的類型必須相同
線性表的性質(zhì):
A、A0為線性表的第一個(gè)元素,只有一個(gè)后繼
B、An-1為線性表的最后一個(gè)元素,只有一個(gè)前驅(qū)
C、除A0與An-1外的其它元素既有前驅(qū)又有后繼
D、直接支持逐項(xiàng)訪問(wèn)和順序存取
線性表的常用操作:
A、將元素插入線性表
B、將元素從線性表中刪除
C、獲取目標(biāo)位置處元素的值
D、設(shè)置目標(biāo)位置處元素的值
E、獲取線性表的長(zhǎng)度
F、清空線性表
#ifndef LIST_H
#define LIST_H
#include "Object.h"
using namespace ScorpioStudio;
template <typename T>
class List:public Object
{
public:
virtual bool insert(int index, const T& value) = 0;
virtual bool remove(int index) = 0;
virtual bool set(int index, const T& value) = 0;
virtual bool get(int index, T& value) = 0;
virtual int length()const = 0;
virtual void clear() = 0;
};
#endif // LIST_H
Object.h:
#ifndef OBJECT_H
#define OBJECT_H
namespace ScorpioStudio
{
class Object
{
public:
void* operator new(unsigned int size) throw();
void operator delete(void* p);
void* operator new[](unsigned int size) throw();
void operator delete[](void* p);
virtual ~Object() = 0;
};
}
#endif // OBJECT_H
Object.cpp:
#include "Object.h"
#include <cstdlib>
#include <iostream>
using namespace std;
namespace ScorpioStudio
{
void* Object::operator new(unsigned int size) throw()
{
//cout << "Object::operator new" << endl;
return malloc(size);
}
void Object::operator delete(void* p)
{
free(p);
}
void* Object::operator new[](unsigned int size) throw()
{
//cout << "Object::operator new[] " << size << endl;
return malloc(size);
}
void Object::operator delete[](void* p)
{
free(p);
}
Object::~Object()
{
}
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。