生活中的智慧
幼兒園老師總會讓小朋友以一樣的排隊秩序出行。
編程
- 零個或多個數據元素組成的集合
- 數據元素在位置上是有序排列的
- 數據元素的個數是有限的
- 數據元素的類型必須相同
- 線性表是具體有相同類型的 n(>=0)個數據元素的有限序列
(a0
, a1
, ..., an-1
)學習
ai
是表項(數據元素),n 是表長度spa
- a
0
爲線性表的第一個元素,只有一個後繼- a
n-1
爲線性表的最後一個元素,只有一個前驅- 除 a
0
和 an-1
外的其餘元素 ai
既有前驅,又有後繼- 直接支持逐項訪問和順序訪問
思考題:下面的關係能夠用線性表描述的是
班級中同窗的友誼關係 (不能夠,圖)
公司中的上下級關係 (不能夠,樹)
冬天圖書館用物品排隊佔座 (不能夠,類型不一樣)
花名冊上名字之間的關係 (視具體名字是否有序)code
討論
宮城:線性表能夠說是生活」隊列關係「的總結
木暮:對,咱們學習以後就能夠在程序中使用了
宮城:但是怎麼使用一個線性表呢?
木暮:確實!還有就是程序中怎麼生成一個線性表呢?blog
問題
線性表只是一個單純的概念嗎?
如何在程序中描述和使用一個線性表?隊列
- 將元素插入線性表
- 將元素從線性表中刪除
- 獲取目標位置處元素的值
- 設置目標位置處元素的值
- 獲取線性表的長度
- 清空線性表
線性表在程序中表現爲一種特殊的數據類型rem
template<typename T> class List : public Object { public: virtual bool insert(int i, const T &e) = 0; virtual bool remove(int i) = 0; virtual bool set(int i, const T &e) = 0; virtual bool get(int i, T &e) = 0; virtual int length() const = 0; virtual void clear() = 0; };
文件:List.hget
#ifndef LIST_H #define LIST_H #include "Object.h" namespace DTLib { template<typename T> class List : public Object { public: virtual bool insert(int i, const T &e) = 0; virtual bool remove(int i) = 0; virtual bool set(int i, const T &e) = 0; virtual bool get(int i, T &e) = 0; virtual int length() const = 0; virtual void clear() = 0; }; } #endif // LIST_H
- 線性表是數據元素的有限並有序的集合
- 線性表中的數據元素必須是類型相同的
- 線性表可用於描述隊列關係的問題
- 線性表在程序中表現爲一種特殊的數據類型
- 線性表在 C++ 中表現爲一個特殊的抽象類
以上內容整理於狄泰軟件學院系列課程,請你們保護原創!it