您好,登錄后才能下訂單哦!
線性表是具有相同類型的n個數據元素的有限序列A0,A1,A2,...,An-1。Ai是表項,n是表的長度。
線性表的表現形式:
A、零個或多個數據元素組成的集合
B、數據元素在位置上是有序排列的
C、數據元素的個數是有限的
D、數據元素的類型必須相同
線性表的性質:
A、A0為線性表的第一個元素,只有一個后繼
B、An-1為線性表的最后一個元素,只有一個前驅
C、除A0與An-1外的其它元素既有前驅又有后繼
D、直接支持逐項訪問和順序存取
線性表的常用操作:
A、將元素插入線性表
B、將元素從線性表中刪除
C、獲取目標位置處元素的值
D、設置目標位置處元素的值
E、獲取線性表的長度
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()
{
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。