求圖的任意兩點的最短路徑有Dijkstra算法和Floyd算法 Dijkstra算法 思路:構(gòu)建D和P兩個數(shù)組,分別表示V0 到某個頂點Vw的路徑和當前頂點的前驅(qū)頂點的下標 ...
一、概念 最小生成樹:一個有 n 個結(jié)點的連通圖的生成樹是原圖的極小連通子圖,且包含原圖中的所有 n 個結(jié)點,并且有保持圖連通的最少的邊。 生成樹的特點:1、圖是連通圖;2、...
圖是一種較為復(fù)雜的數(shù)據(jù)結(jié)構(gòu),是頂點和邊的集合。有兩種存儲方式:鄰接矩陣和鄰接表。圖的遍歷方法有深度優(yōu)先遍歷和廣度優(yōu)先遍歷 一、鄰接矩陣 樣式圖: 1、圖的結(jié)構(gòu) 2、創(chuàng)建和存儲...
一、概念 給定N個權(quán)值作為N個葉子結(jié)點,構(gòu)造一棵二叉樹,若該樹的帶權(quán)路徑長度達到最小,稱這樣的二叉樹為最優(yōu)二叉樹,也稱為哈夫曼樹。哈夫曼樹是帶權(quán)路徑長度最短的樹,權(quán)值較大的結(jié)...
1、概念 對于n個結(jié)點的二叉樹,在二叉鏈存儲結(jié)構(gòu)中有n+1個空鏈域,利用這些空鏈域存放在某種遍歷次序下該結(jié)點的前驅(qū)結(jié)點和后繼結(jié)點的指針,這些指針稱為線索,加上線索的二叉樹稱為...
一、概念 二叉樹:每個結(jié)點最多有兩個子樹的樹結(jié)構(gòu)如圖: 滿二叉樹:除了葉結(jié)點外每一個結(jié)點都有左右子葉且葉子結(jié)點都處在最底層的二叉樹 二、相關(guān)術(shù)語 樹的結(jié)點:包含一個數(shù)據(jù)元素及...
KMP算法也是一種解決字符串匹配問題的算法,它的中心思想是:盡可能的減少匹配次數(shù)。 一、KMP算法原理探究 以此圖為例: 當主串遍歷到i位置,子串遍歷到j(luò)位置,主串和子串字母...
BF算法和RK算法 用途:主要用于解決字符串匹配問題 一、準備 生成一個S[0]為字符串長度的字符串S 打印字符串S 二、BF算法-爆風(fēng)匹配算法 思路:1. 分別利用計數(shù)指針...
題目 給你一個僅包含小寫字母的字符串,請你去除字符串中重復(fù)的字母,使得每個字母只出現(xiàn)一次。需保證返回結(jié)果的字典序最?。ㄒ蟛荒艽騺y其他字符的相對位置)示例1:輸入:"bcab...
一、實現(xiàn)棧方法 構(gòu)建空棧 清空棧 判斷是否空棧 返回棧的長度 獲取棧頂 獲取棧底 插入元素 刪除元素 二、題目 1、十進制轉(zhuǎn)八進制 2、楊輝三角思路:1. 第一層循環(huán)控制行數(shù)...
隊列:也是一種限定性的線性結(jié)構(gòu),它的特點是:先進先出。它有兩種存儲方式:順序存儲和鏈式存儲 1、順序存儲隊列的實現(xiàn) 循環(huán)隊列的順序存儲結(jié)構(gòu) 初始化隊列 清空隊列 判斷隊列是否...
棧:是一種限定性的線性結(jié)構(gòu)。它有兩種存儲方式:順序存儲和鏈式存儲 1、順序存儲棧的實現(xiàn) 1.1、順序棧結(jié)構(gòu) 1.2、構(gòu)建空棧 1.3、清空棧 1.4、判斷是否空棧 1.5、獲...
單鏈表初始化 鏈表插入 鏈表的遍歷 題目1:將2個遞增的有序鏈表合并為一個有序鏈表; 要求結(jié)果鏈表仍然使用兩個鏈表的存儲空間,不另外占用其他的存儲空間. 表中不允許有重復(fù)的數(shù)...
雙向循環(huán)鏈表 鏈表初始化 鏈表插入結(jié)點 鏈表刪除結(jié)點 LinkList2
單向循環(huán)鏈表 單向循環(huán)鏈表是在單向鏈表的基礎(chǔ)上,將尾結(jié)點的指針指向首元結(jié)點。 1、單向循環(huán)鏈表的創(chuàng)建 2、單向循環(huán)鏈表插入數(shù)據(jù) 3、單向循環(huán)鏈表刪除元素 4、單向循環(huán)鏈表查詢...
一、數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu):計算機存儲、組織數(shù)據(jù)的方式。是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。 1 、概念術(shù)語: 數(shù)據(jù):是可以被自算計處理的符號或符號集合 數(shù)據(jù)對象...