线性表是具有相同类型的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()
{
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:数据结构(二)——线性表简介-创新互联
转载来源:https://www.cdcxhl.com/article28/cshijp.html
成都网站建设公司_创新互联,为您提供App开发、面包屑导航、全网营销推广、微信公众号、网站建设、商城网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联