1. 程式人生 > >資料結構(C語言)學習之路(1)——緒論

資料結構(C語言)學習之路(1)——緒論

小白學習資料結構,從基礎知識開始整理起。

1.資料結構是什麼?
2.資料結構在哪裡用?
3.資料結構怎麼用?

小白在開始學習資料結構,提出了這三個問題,希望到學習完成之後可以解決這三個問題。

小白從《大話資料結構》這本書開始學習。

基本概念:

資料結構:是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。

資料:是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。

資料元素:是組成資料的、有一定意義的單位,在計算機中通常作為整體處理,也被成為記錄。

資料項:一個數據元素可以由若干個資料項組成。(資料項是不可分割的最小單位)

資料物件:是性質相同的資料元素的集合,是資料的子集。

資料結構:是相互之間存在一種或多種特定關係的資料元素的集合。

這裡寫圖片描述

邏輯結構:

是指資料物件中資料元素之間的相互關係。

1、集合結構:集合結構中的資料元素除了同屬一個集合外,他們之間沒有其他關係。

這裡寫圖片描述

2、線性結構:線性結構中的資料元素之間是一對一的關係。
這裡寫圖片描述

3、樹形結構:樹形結構中的資料元素之間存在一種一對多的層次關係。
這裡寫圖片描述

4、圖形結構:圖形結構的資料元素事多對多的關係。
這裡寫圖片描述

物理結構:

是指資料的邏輯結構在計算機中的儲存形式。

1、順序儲存結構:是把資料元素放在地址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的。(就行排隊佔位一樣的排列)

2、鏈式儲存結構:是把資料元素存放在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。

資料型別:

是指一組性質相同的值的集合及定義在集合上的一些操作的總稱。

原子型別:是不可以分解的基本型別,包括整型、實型、字元型等。

結構型別:由若干型別組合而成,是可以再分解的。(整型陣列是由若干整形資料組成的)

抽象資料型別

是指一個數學模型及在該模型上的一組操作。

抽象資料模型的標準格式:

ADT 抽象資料型別名
Data
資料元素之間的邏輯關係的定義
Operation
操作1
初始條件
操作結果描述
操作2
。。。
操作3
。。。
endADT

相關推薦

C語言學習——初識C語言

                      C語言的學習之路(一)——初識C語言 從9月8日踏入大學校園,已近過去40多天了。這篇部落格也是踏入大學的第一篇部落格。內心很慌:因為自己

資料結構C語言學習1——緒論

小白學習資料結構,從基礎知識開始整理起。 1.資料結構是什麼? 2.資料結構在哪裡用? 3.資料結構怎麼用? 小白在開始學習資料結構,提出了這三個問題,希望到學習完成之後可以解決這三個問題。 小白從《大話資料結構》這本書開始學習。 基本概念: 資

資料結構學習C語言對陣列的簡單實現

以下的程式只是在觀看郝斌老師講解的(C語言資料結構)之後自己做得簡單練習。# include <stdio.h> # include <stdlib.h> typedef struct MyArray{ int * pBase; //存放陣列第一個

12天學好C語言——記錄我的C語言學習Day 1

12天學好C語言——記錄我的C語言學習之路 Day 1: 剛剛入門C語言,那麼肯定要先把什麼是C語言和大家講清楚,那麼大家看下面一段程式(program  1.1): /*//program 1.1 #include<stdio.h>  //編譯預處理指令,編譯

一個菜鳥的資料結構學習棧篇

棧的基本操作如下: 相關結構體: typedef int status; typedef struct { SElemType *base; //在棧建立之前和銷燬之後,base的值為NULL SElemType *top; //棧

讀書筆記_資料結構-使用C++語言描述第2版

第一章    基礎知識 資料:計算機加工處理的物件,分為數值資料和非數值資料。 資料結構的設計過程分為抽象層(資料的邏輯結構及運算)、資料結構層、實現層。 資料的邏輯結構:集合結構、線性結構、樹形結構、圖狀結構。(線性和非線性) 儲存表示方法:順序和連結(以及索引和雜湊)

C++再學習

iter pointer lin clas 數組元素 對數 表達 自增 條件操作符 1. 移位操作符“ << ”和“ >> ”擁有中等優先級:其優先級比算術操作符低,但比關系操作符、賦值操作符和條件操作符優先級高 2. *iter++   後自增操作

C++再學習

我們 實參 對象傳遞 color virtual 轉換 版本 部分 尊重 1.繼承和動態綁定在兩個方面簡化了我們的程序   能夠容易地定義與其他類相似但又不相同的新類,能夠更容易地編寫忽略這些相似類型之間區別的程序  P471 2.之所以稱通過繼承而相關聯的類型為多態類型,

C++學習:關於C++提供的強制類型轉換

code 記錄 是不是 通過 行修改 單元 c語言 enum 表達式 C語言中提供了舊式的強制類型轉換方法。比如: int a =1; char *p = (char *)&a; 上述將a的地址單元強制轉換為char類型的指針。這裏暫且不說上述轉換結果是否合理,但

C++學習:虛繼承引入的執行效率

存取 ++ 移位 繼承 模型 虛函數 必須 執行 amp 這篇文章不知道取啥名字了,暫且這樣叫,直接看場景就明白了。節選自《深度探索C++對象模型》 Point3d origin, *pt = &origin; (1)origin.x = 0; (2)pt->

學習淺談:三種語句結構,vim編輯器快捷鍵及使用方法,find命令使用

vim編輯器循環;forwhileuntil for 變量 in 列表; do 循環體 done e.g for I in ‘seq 1 $FILE‘ ; doecho "Hello,‘head -n $I

Druid學習 Druid的資料攝取任務型別

作者:Syn良子 出處:https://www.cnblogs.com/cssdongl/p/9885534.html 轉載請註明出處 Druid的資料攝取任務型別 Druid支援很多種型別的資料攝取任務.任務通過CURL POST的方式提交到Overlord節點然後分配給middle manager

Vue學習---父元件與子元件之間的資料傳遞

前面我講了基本元件的寫法,現在一起學下父元件怎樣傳遞資料到子元件,以及子元件傳遞資料到父元件的 1.父元件傳遞資料到子元件 1.1 通過props傳遞 父元件App.vue中 <component-a big-num=98></component-a&g

C語言學習 -- 關鍵字struct

結構體的一般定義形式為: 標籤(tag)欄位允許為成員列表提供一個名字,這樣它就可以在後續的宣告中使用。標籤允許多個宣告使用同一個成員列表,並且建立同一種類型的結構。 struct 標籤{ 型別名1 成員名1; 型別名2 成員名2; …… 型別名n 成員名n;    }結構體變數;

設計模式單利模式C#語言描述,附視訊下載地址

今天來介紹所有設計模式中結構最簡單的設計模式單例模式,它的核心結構中只包含一個被稱為單例類的特殊類。 要想完成單例類的設計,我們要遵循一下原則即可: 1、一個類只能有一個例項 2、確保該例項對外有一個訪問入口(保證我們的系統可以從這個入口拿到該類的唯一例項) 3、將單例類的建構函式私有化(private),當

C++學習47---C++類模板與模板類深入詳解

1、在c++的Template中很多地方都用到了typename與class這兩個關鍵字,而且有時候二者可以替換,那麼是不是這兩個關鍵字完全一樣呢? 事實上class用於定義類,在模板引入c++後,最初定義模板的方法為:template<class T>,這裡cl

Tensorflow學習:從MNIST資料集開始

MNIST資料集簡單介紹: MNIST 資料集可在 http://yann.lecun.com/exdb/mnist/ 獲取, 它包含了四個部分: Training set images: train-images-idx3-ubyte.gz (9.9 MB,

C語言檔案操作fgets

C語言檔案操作之fgets() 原創  2013年01月25日 11:57:00 標籤: C語言 / fgets... / 檔案操作函式 142460 &

Python小白學習—【變數】【基本資料型別分類】【集合】【集合的功能】

一、變數 變數的作用:記錄狀態的變化變數的值:描述不同的狀態 二、五大基本資料型別的分類 五大基本資料型別(數字 字串 列表 元祖 字典) 按照可變不可變來進行分類 可變:列表、字典 不可變:字串、數字、元祖 我個人理解,所謂可變,是指當修改內容是,內容改變,地址不變。(即新修改的內容可以覆蓋之

SQL資料庫學習練習---C#登入介面連資料庫

目錄 參考文章: C#登入介面連資料庫 一、在資料庫中先建立一個數據庫。 資料庫命名為NamePwd,使用SQL語言建立兩個表,一個表命名為name,另一個表命名為pwd。在兩個表中都只建立一個列。 create table