1. 程式人生 > >資料結構的基本概念 與順序表和連結串列的區別

資料結構的基本概念 與順序表和連結串列的區別

 1.資料:就是符號  輸入到計算機被計算機加工處理的符號的集合
  特點:輸入到計算機  可以被計算機加工處理
 2.資料結構把資料分為:數值型別和非數值型別 
 3.資料元素:組成資料基本元素
 4.資料項:組成資料元素的基本單位
 5.資料物件:相同資料項的資料元素的集合
 6.資料結構:組成資料的資料元素之間的關係
 資料結構主要研究的是資料元素和資料元素之間的關係
 7.按照資料結構的研究方向分為:邏輯結構和物理結構
 邏輯結構:1。集合 2.線性表 3.樹 4.圖
 集合的特點:1.唯一性 2.無序性 3.確定性
 物理結構 也叫儲存結構 把元素的邏輯結構儲存到計算機的儲存器中(記憶體)
  1.順序儲存:元素放到物理位置連續的記憶體空間中
  2.鏈式儲存:元素放放到物理空間不一定連續的記憶體空間中  每個元素有兩部分組成:1.指標域 2.數值域
 8.根據線性表的儲存不同  把線性表分為 兩種
  1.順序表:使用順序儲存方式實現的線性表
   2.連結串列:使用鏈式儲存方式實現的線性表
 9.兩者的區別:
 1.定義
 2.插入和刪除運算
 順序表的插入和刪除運算比較慢原因是移動慢
 連結串列插入刪除的時間快 因為需要修改元素的指標域即可不需要移動元素的位置
3.查詢
順序表的查詢速度快  可以通過陣列下標快速定位
連結串列 查詢慢

相關推薦

資料結構基本概念 順序連結串列區別

 1.資料:就是符號  輸入到計算機被計算機加工處理的符號的集合   特點:輸入到計算機  可以被計算機加工處理  2.資料結構把資料分為:數值型別和非數值型別   3.資料元素:組成資料基本元素  

資料結構-第一章,順序連結串列,棧結構,佇列結構的關係(個人見解)

首先 順序表  和 連結串列是 兩個儲存結構。分別有自己的儲存特點。 其次 順序表 和 連結串列分別存放在不同的地方,“這個地方”就是 “棧” 或者 “佇列” 了 其實就是按照   FIFO先進先出 和  FILO先進後出 來處理資料所區別。 {{{而對於 FIFO 呢

資料結構:順序連結串列的簡單操作

用陣列正序初始化連結串列 初始定義 #include <cstdlib> #include <iostream> using namespace std; typedef int ElemType; typedef int Status;

資料結構-------線性..順序..連結串列..順序連結串列區別聯絡(1)

線性表:        線性表是N個具有相同特性的資料元素的有限序列 .線性表是一種在實際中廣泛使用的資料結構,常見的線性表:順序表..連結串列...棧...佇列...字串... 線性表在邏輯上是線性結構,也就說是連續的一條直線,但是在物

順序連結串列的清空,銷燬,建構函式

一.建構函式 在定義物件時呼叫建構函式,建構函式是用來建立一個空表 1.順序表建構函式 len,size,elem,這仨合起來看作是表的頭目,呼叫建構函式首先為這個“頭目”這仨資料分配空間,表的元素有沒有空間分配要看m的值。 ↓主要是關於空間的分

資料結構那點事--線性連結串列

#include<iostream> #include<stdlib.h> using namespace std; //鏈式線性表的儲存結構 #define OK 1 #define ERROR 0 #define TRUE 1 #de

順序連結串列(Sqlist&LNode)

寫在前面的廢話:這是應某人(不點名)的煽風點火整理來的一篇關於線性表中順序表和連結串列的區別 ——————————————————————————————————————————— 眾所周知,線性表是一個比較靈活的儲存空間,其中有兩種儲存格式:線性表和連結串列,下文儘量詳

模板實現順序連結串列

順序表的實現:"Seqlist.h"  #pragma once template<class T> class Seqlist { private: T* _array; size_t _size; size_t _capacity; public:

順序連結串列拷貝構造

簡單一部 #include <iostream> #define DATA int class SXB { int size; int len; DATA* p; public: SXB(const SXB& that) // 拷貝

C++模板的實現(模板函式模板類,附帶模板實現順序連結串列程式碼)

模板  當我們實現一個交換函式時,我們可以寫成如下。 void Swap(int& x, int& y) { int tmp = x; x = y; y = tmp; }  這裡只能交換兩個整數,當我們

資料結構(5)線性連結串列C++實現帶頭結點的單鏈合併

題目 如何將有序連結串列合併成有序連結串列 假設頭指標為La和Lb的單鏈表分別為線性表LA和LB的儲存結構,現要歸併La和Lb得到單鏈表Lc。 思路點撥 按照第三篇文章的思想,需要設立三個指標pa,pb和pc,其中pa和

順序連結串列的優缺點(區別、特點)詳解

順序表和連結串列由於儲存結構上的差異,導致它們具有不同的特點,適用於不同的場景。本節就來分析它們的特點,讓讀者明白 "在什麼樣的場景中使用哪種儲存結構" 更能有效解決問題。 通過系統地學習順序表和連結串列我們知道,雖然它們同屬於線性表,但資料的儲存結構有本質的不同: 順序表儲存資料,需預先申請一整塊足夠

比較順序連結串列的優缺點,說說它們分別在什麼場景下使用?

順序表:記憶體中地址連續,優點是隨機訪問比較便捷快速,建立也比較簡單,隨機查詢比較方便,可以直接給出下標,排序也方便簡單。                 缺點是不夠靈活,刪除增加的工作量叫大,比較麻煩,長度不能實時變化 適用場景:適用於需要大量訪問元素的 而少量增

比較順序連結串列的優缺點

線性表分為順序表和連結串列,連結串列又分為單鏈表,雙向連結串列和迴圈連結串列。對於連結串列的結構又分為帶頭連結串列和不帶頭連結串列。 一,順序表 定義:將表中元素一個接一個的存入一組連續的儲存單元中,這種儲存結構是順序結構。採用順序儲存結構的線

線性的兩種實現 -- 順序連結串列(C++)

線性表抽象類宣告 #ifndef ADT_H #define ADT_H //線性表ADT template <typename E> class List{ private: v

資料結構(一):順序基本操作 C語言

順序表   標頭檔案: Sqlist.h #include<stdio.h> #include<stdlib.h> #define SIZE 15 #pragma once typedef struct Sqlist { int elem[SIZ

資料結構2-動態生成順序的例項分析

動態建立一個順序表,並完成插入和刪除的操作。程式碼如下: #include"stdio.h" #include"conio.h" #define MaxSize 10 typedef int ElemType;/*將int定義為ElemType*/ typedef str

資料結構作業1-資料結構基本概念

1-1 抽象資料型別中基本操作的定義與具體實現有關。 (1分) [ ] T [x] F 1-2 若用連結串列來表示一個線性表,則表中元素的地址一定是連續的。 (1分) [ ] T [x] F 2-1 在決定選取何種儲存結構時,一般不考慮()。 (2分) [ ] A.

資料結構——關於圖的儲存中十字連結串列鄰接多重的理解思考

有向圖的十字連結串列   對於有向圖來說,鄰接表是有缺陷的,關心了出度問題,想了解入度就必須要遍歷整個圖才能知道,反之,逆鄰接表解決了入度的情況。 把鄰接表與逆鄰接表結合起來,即有向圖的一種儲存方法十字連結串列(Orthogonal   List)。 我們重新定義頂點表結

C++資料結構實驗報告:順序實現

一,順序表的作用 線性結構的基本特徵為: 1.集合中必存在唯一的一個“第一元素”2.集合中必存在唯一的一個 “最後元素”3.除最後一個元素之外,均有 唯一的後繼(後件) 4.除第一個元素之外,均有 唯一的前驅(前件) 由n(n≥0)個數據元素(結點)a1,a2,…,an組