色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 嵌入式學習筆記:數據結構知識點大集合

嵌入式學習筆記:數據結構知識點大集合 時間:2018-09-10      來源:未知

數據結構學習很容易,想要容易學,那你就需要掌握好下面這些基礎知識,都是學霸總結的

數據結構的定義 :數據元素間的相互關系

(DS)

數據(Data)定義 :即信息的載體(可以輸入計算器且能被計算機識別,存儲 和處理的符號總稱)

數據元素定義 :數據的基本元素(即記錄)(若干基本項組(字段、數據結構)成)

數據類型定義 :對元素取值范圍與運算的限定

數據存儲結構 :

順序存儲 --將數據結構中的各元素按照其邏輯順序存放在存儲器 的一片連續(xù)的存儲空間中

鏈式存儲 --將數據結構中的各元素分布在存儲器不同點,用地址或 鏈指針把他們聯(lián)系起來的存儲結構

索引存儲 --在數據存儲的同時建立一個附加索引表,:索引存儲結構=數據文件+索引表

散列存儲 --根據數據元素的關鍵字key計算存儲地址然后數據元素按地址存放,的這種存儲結構

p126頁

數據結構類型

數據結構關系:

物理關系:順序關系、鏈式關系

運算關系:增(加),刪(除),改(修改),查(詢),排(序)

邏輯關系:

(結構)

集合 : 數據元素間除同屬一集合無其他關系

線性: 線性(關系) :一對一(如線性表、棧、隊列)

非線性: 層次關系(樹狀結構) :一對多

網狀關系(圖狀結構) :多對多

算法特性: (1)有窮性---算法執(zhí)行的步驟或規(guī)則是有限的

(2)確定性---每個計算步驟無二義性

(3)可行性---每個計算步驟都能在有限時間內完成

(4)輸入---算法有一個或多個輸入

(5)輸出---算法有一個或多個輸出 p128頁

評判算法好(壞): 消耗時間少 、存儲空間少,

易(理解 編程 調試 和維護)的程度,

問題規(guī)模(小):(輸入數據量的大小,用n表示)

算法消耗的時間復雜度 T(N):(算法消耗的時間)

算法消耗的空間復雜度 D(N):(算法消耗的空間)

語句頻度: 可執(zhí)行語句在算法(或程序)中重復執(zhí)行的次數

(一條語句的時間復雜度=語句平度 *消耗時間) p129頁

算法與程序的聯(lián)系與區(qū)別:

共同點:二者皆為完成某個任務,或解決某個問題而編制的規(guī)則(或語句)的 有序集合

區(qū)別 : 一,算法與計算機無關,但程序依賴于具體的計算機語言

二,算法必須有窮而程序可能無窮

三,算法可忽略一些語法細節(jié)問題,重點放在解決問題的思路上, 但程序必須嚴格按相應的語言工具的語法算法換成程序后才能在計算機上運行。

線性表: 是信息表的一種形式,數據元素間滿足線性關系(或線性結構)

非空線性表的特征:

a0是表頭無前驅

a(n-1)是表尾無后繼

其他每個元素有且僅一個直接前驅a(i-1)和直接后繼a(i+1)

(當關系表長n<=1時,關系集R為空)

創(chuàng)建Makefile 文件

test:main.c seqlist.c

gcc main.c seqlist.c -o test

創(chuàng)建shell 文件

#ifndef SEQLIST_H

#define SEQLIST_H

#include

#include

#include

typedef int data_t;

#define size 15

typedef struct node{

data_t data[size];

int last;

}seqlist;

//增,刪,改,查,排序等

seqlist *create_list();

int insert_list(seqlist *l, int pos, data_t value);

int delte_list(seqlist *l, int pos);

int change_list(seqlist *l, int pos, data_t value);

data_t select_list(seqlist *l, int pos);

void printf_list(seqlist *l);

#endif

創(chuàng)建.c主程序文件

#include "seqlist.h"

#include

#include

#include

seqlist *create_list() //創(chuàng)建空表

{

seqlist *l; //創(chuàng)建鏈表指針

l = (seqlist *)malloc(sizeof(seqlist)); //開辟malloc空間并強轉

if (l == NULL){ //判斷是否為空,

return NULL;

}

memset(l->data, 0, 4*size); //把所有空間初始化為0,memset初始化的意思

l->last = -1;

return l;

}

int insert_list(seqlist *l, int pos, data_t value)//插入數據

{

if (l == NULL) //首先判斷是否為空

return -1;

if (pos < 0 || pos > l->last + 1 || (l->last + 1 == size)) //判斷插入位置是否有效,無效返回-1

return -1;

int i;

for(i = l->last; i >= pos; i--)

l->data[i+1] = l->data[i];

l->data[pos] = value;

l->last = l->last + 1;

return 0;

}

int delte_list(seqlist *l, int pos)//刪除某一地址下的數據

{

if(l==NULL || l->last == -1 )//同樣判斷刪除位置是否有效

return -1;

if(pos < 0 || pos>l->last+1)

return -1;

int i;

for(i=pos; ilast; i++)

l->data[i] = l->data[i+1];

l->last--;

return 0;}

int change_list(seqlist *l, int pos, data_t value)//更改

{if (l == NULL)

return -1;

if (pos < 0 || pos > l->last + 1 )

return -1;

int i;

for(i = pos; i < l->last; i++)

l->data[pos] = value;

return 0;

}

data_t select_list(seqlist *l, int pos)//查詢

{if (l == NULL)

return -1;

else

return l->data[pos];

}

void printf_list(seqlist *l)//輸出函數

{

int i = 0;

printf("seqlist : l->last = %d\n", l->last);

while(i <= l->last){

printf("----%d ", l->data[i]);

i++;

}

printf("\n");

}

創(chuàng)建主函數調用

#include "seqlist.h"

#include

#include

#include

void main()

{

seqlist *l = create_list();

if (l == NULL)

printf("create list failed\n");

insert_list(l, 0, 2);

insert_list(l, 1, 3);

insert_list(l, 2, 5);

insert_list(l, 3, 7);

insert_list(l, 4, 9);

printf_list(l);

insert_list(l, 2, 13);

printf_list(l);

delte_list(l,2);

printf_list(l);

change_list(l,3,666);

printf_list(l);

select_list(l,3);

printf_list(l);

}

上一篇:嵌入式學習筆記:linux用戶管理命令大總結

下一篇:嵌入式學習筆記:TCP握手/揮手過程詳解

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 老司机久久一区二区三区 | 日本精品成人一区二区三区视频 | 西西4444WWW大胆无码 | 孕妇奶水仑乱A级毛片在线播放 | 国产第一页浮力影院草草影视 | 五月久久久综合一区二区人妻 | 四虎成人在线观看 | 提莫影院AV毛片入口 | 粉嫩高中生无码视频在线观看 | 大学生一级一a免费 | 免费观看在线A毛片 | 久久久国产乱子伦精品 | 看日本黄色一级片 | 强女の上司侵犯在线观看 | 中文一区一区三区免费在线观看 | 中文亚洲AV片在线观看不卡 | 成人黄网站片免费视频 | 在线观看精品视频网站 | 欧美浓毛大BBwBBW | 国产国拍亚洲精品MV在线观看 | 久久青青草原亚洲AV无码麻豆 | 亚洲AV无码片一区二区三区 | 美女裸体黄网站18禁免费看影站 | 中文无码AV一区二区三区 | 欧美日韩不卡视频合集 | 亚洲精品久久久无码白峰美 | 精品久久人人爽天天玩人人妻 | 三年中文在线观看免费国语第五集 | 色综合色天天久久婷婷基地 | 亚洲AV中文无码字幕色下药 | 婷婷国产成人精品视频 | 国产成人精品无码片区在线观看 | 啊轻点灬大JI巴太粗熟妇 | 97久久精品人妻人人搡人人玩 | avtt天堂网久久精品 | 92久久精品一区二区 | 牛和人交videos欧美 | 天天看片视频免费观看 | 精品夜夜澡人妻无码AV | 国产在线看片无码人精品 | 亚洲色精品aⅴ一区区三区 亚洲国产另类久久久精品黑人 |