溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)結(jié)構(gòu)(二)——線性表簡(jiǎn)介

發(fā)布時(shí)間:2020-07-19 03:40:13 來(lái)源:網(wǎng)絡(luò) 閱讀:8380 作者:天山老妖S 欄目:編程語(yǔ)言

數(shù)據(jù)結(jié)構(gòu)(二)——線性表簡(jiǎn)介

一、線性表簡(jiǎn)介

1、線性表簡(jiǎn)介

線性表是具有相同類型的n個(gè)數(shù)據(jù)元素的有限序列A0,A1,A2,...,An-1。Ai是表項(xiàng),n是表的長(zhǎng)度。

2、線性表的表現(xiàn)形式

線性表的表現(xiàn)形式:
A、零個(gè)或多個(gè)數(shù)據(jù)元素組成的集合
B、數(shù)據(jù)元素在位置上是有序排列的
C、數(shù)據(jù)元素的個(gè)數(shù)是有限的
D、數(shù)據(jù)元素的類型必須相同

3、線性表的性質(zhì)

線性表的性質(zhì):
A、A0為線性表的第一個(gè)元素,只有一個(gè)后繼
B、An-1為線性表的最后一個(gè)元素,只有一個(gè)前驅(qū)
C、除A0與An-1外的其它元素既有前驅(qū)又有后繼
D、直接支持逐項(xiàng)訪問(wèn)和順序存取

4、線性表的常用操作

線性表的常用操作:
A、將元素插入線性表
B、將元素從線性表中刪除
C、獲取目標(biāo)位置處元素的值
D、設(shè)置目標(biāo)位置處元素的值
E、獲取線性表的長(zhǎng)度
F、清空線性表

二、線性表的抽象實(shí)現(xiàn)

#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()
  {

  }

}
向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI