原创 線性表(上)之順序存儲

線性表 一、線性表定義: 1、線性表的定義 定義:線性表(List):零個或多個數據元素的有限序列。 注意: 1)線性表是一個序列。也就是說,線性表的元素之間是有序的。若元素存在多個,對於其中一個元素來說,它前面的元素叫前驅,後面的元素叫

原创 棧(下)之鏈式棧

鏈式棧代碼 #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 typedef int data_t; typedef struct StackNo

原创 C語言指針,數組,函數總結

引子:數據在內存中是如何存儲的,又是如何讀取的?內存編號就是內存的地址(內存中每個字節都有一個編號,即地址) 1.概念:e 地址:內部存儲器的編號,稱爲地址。如變量a的位置編號,變量b的位置都是指針。 指針變量:專門存放地址的變量稱爲指針

原创 隊列(下)之循環隊列

循環隊列代碼 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 20 #define OK 1 #define ERROR 0 typedef int data_t; ty

原创 瞭解嵌入式操作系統

1、計算機體系結構: 馮諾依曼體系結構: 計算機硬件由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成 哈佛體系結構: 程序存儲器與數據存儲器分開,使用獨立的兩條總線,分別作爲CPU與每個存儲器之間的專用通信路徑,而這兩條總線之間毫

原创 C語言存儲類型總結(malloc,typedef)

一、存儲模型 1.存儲類型(storage class) 變量可以通過 生存週期(內存佔用時間->靜態與動態)。 作用域(有效區域->全局與靜態)、連接點來描述。 1)        auto 普通局部變量,是自動存儲,變量會自動

原创 C語言基礎知識(四)

gcc/gdb 指針基礎 內存編號=>地址 變量的地址 &a 地址變量 int *p; 定義 賦值 * & 引用 零指針,空類型指針,野指針 const 與指針 指針運算 算術運算 關係運算 賦值運算 指針與一維數組 一維數組名含義

原创 C語言基礎知識(二)

第二部分:類型轉換 1、隱式類型轉換(自動轉換) 在有多種數據類型混合計算的時候,若未人爲控制類型,系統會自動進行類型轉換 轉換的規則是:存儲長度較短的轉換成存儲長度較長的,且不丟失數據 char--->short--->int--->u

原创 C語言基礎知識(三)

第二部分:選擇結構 1、C語言程序有3種基本結構:順序結構、選擇結構和循環結構 1)順序結構:所謂順序結構,就是從上到下的所有語句都會依次執行 2)選擇結構:選擇結構中存在一條(或多條)分支語句,當滿足分支的條件時語句纔會執行,否則不會執

原创 C語言基礎知識(一)

編寫簡單的C程序:HelloWorld 1、編寫簡單的C程序HelloWorld #include<stdio.h> int main() { printf("Hello World!\n"); return 0; } 程序講解: #

原创 棧(上)之順序棧

一、棧的定義 定義:棧(stack):棧是限定僅在表的一端進行插入或刪除操作的線性表。 我們把允許插入和刪除操作的一端稱爲棧頂(top),另一端稱爲棧底(bottom)。不含任何數據元素的棧稱爲空棧。棧又稱爲“後進先出(Last In F

原创 Linux常用操作指令

1、虛擬機環境:Ubuntu 2、終端:Terminal 打開終端:ctrl + alt + t 終端命令提示符#與$的區別: #是超級用戶root,$是普通用戶。 3、ls、cd和pwd 1)ls:顯示當前目錄的文件 ls -l:詳細顯

原创 線性表(中)之鏈式存儲

一、線性表的鏈式存儲結構 前面所講的線性表的順序存儲結構是有缺點的,最大的缺點就是插入和刪除時需要移動大量的元素,這顯然就需要耗費大量時間。 仔細考慮一下產生該問題的原因,在於相鄰元素的存儲位置也具有鄰居關係,它們在內存中是緊挨着的,沒有

原创 算法簡介

算法簡介: 一、數據結構與算法的關係 雖然本門課程叫“數據結構”,但經常會講到算法,以及它們之間的關係。在市面上也經常有諸如“數據結構與算法分析”這樣名字的書。 實際上,數據結構與算法是依存關係。只談數據結構而拋棄算法,則數據是“死”的

原创 線性表(下)之鏈式存儲之雙向,單向循環列表

線性表之鏈式存儲(雙向循環鏈表) //注意:該文件操作的鏈表爲帶頭結點雙向鏈表,頭結點數據爲-1 #include <stdio.h> #include <stdlib.h> #include <time.h> #define OK 1