數據結構
graph TD sjjg(數據結構) sjjg --> ljjg(邏輯結構) ljjg --> xxjg(線性結構) xxjg --> xxb[線性表] xxjg --> zhdl[棧和隊列] xxjg --> zfc[字符串] ljjg --> fxxjg(非線性結構) fxxjg --> jhjg[集合結構] fxxjg --> sjg[樹結構] fxxjg --> tjg[圖結構] sjjg --> ccjg(存儲結構) ccjg --> sxccjg[順序存儲結構] ccjg --> lsccjg[鏈式存儲結構]
線性表
graph TD xxb(線性表) --> sxb(順序表) sxb --> qzcz[取值操作] sxb --> czcz[查找操作] sxb --> crcz[插入操作] sxb --> sccz[刪除操作] xxb --> lb(鏈表) lb --> dlb(單鏈表) dlb --> cjcz(創建操作) cjcz --> qcf[前插法] cjcz --> hcf[后插法] dlb --> qzcz2[取值操作] dlb --> czcz2[查找操作] dlb --> crcz2[插入操作] dlb --> sccz2[刪除操作] lb --> xhlb[循環鏈表] lb --> sxlb[雙向鏈表] sxlb--> crcz3[插入操作] sxlb--> sccz3[刪除操作] xxb--> xxbdyy(線性表的應用) xxbdyy--> xxbdhb[線性表的合並] xxbdyy--> yxbdhb[有序表的合並]
棧和隊列
graph TD zhdl(棧和隊列) -->z(棧) z --> sxz(順序棧) sxz --> jz[進棧] sxz --> cz[出棧] z --> lz(鏈棧) lz --> jz2[進棧] lz --> cz2[出棧] zhdl-->dl(隊列) dl --> xhdl(循環隊列) xhdl --> jd(進隊) xhdl --> cd(出隊) dl -->ld(鏈隊) ld --> jd2[進隊] ld --> cd2[出隊] zhdl --> zdyy(棧的應用) zdyy --> dgsf[遞歸算法] zdyy --> bdsqzsf(表達式求值算法) bdsqzsf --> zzbdsqz[中綴表達式求值] bdsqzsf --> zzbdszhwhzbds[中綴表單時轉換為后綴表達式] bdsqzsf --> hzbdsqz[后追表達式求值]
串和數組
graph TD xxb(線性表) -->|內容受限制的線性表|c(串) c --> bfsf[BF算法] c --> kmpsf(KMP算法) kmpsf --> next[next數組計算] kmpsf --> nextval[nextval數組計算] xxb -->|多維數組可看做線性表的推廣|sz(數組) sz --> ahcc[按行存儲] sz --> alcc[按列存儲] sz --> yscc[壓縮存儲] yscc -->dcjz[對稱矩陣] yscc -->sjjz[三角矩陣] yscc -->djjz[對角矩陣] xxb -->|線性表的推廣|gyb(廣義表) gyb -->xggn(相關概念) xggn -->cd3[長度] xggn -->sd[深度] gyb -->jbcz(基本操作) jbcz -->qbt[取表頭] jbcz -->qbw[取表尾]
樹
graph LR s(樹) -->ecs(二叉樹) ecs --> xz(性質) xz --> pterc[普通二叉樹的3個性質] xz --> wqecs[完全二叉樹的2個性質] ecs --> ccjg2(存儲結構) ccjg2 --> sxcc[順序存儲] ccjg2 --> eclb[二叉鏈表] ecs --> bl(遍歷) bl --> xxbl[先序] bl --> zxbl[中序] bl --> hxbl[后序] ecs --> xsecs(線索二叉樹) xsecs --> xssdcj[線索樹的創建] xsecs --> xssdbl[線索樹的遍歷] ecs --> yy(應用) yy -->hfmscs[哈夫曼樹的創建] yy -->hfmbmqj[哈夫曼編碼的求解] s --> shsl(樹和森林) shsl -->sdccjg(樹的存儲結構) sdccjg --> sqbsf[雙親表示法] sdccjg --> hzbsf[孩子表示法] sdccjg --> hzxdbsf[孩子兄弟表示法] shsl --> slyecszh[森林與二叉樹的轉換] shsl --> shsldbl[樹和森林的遍歷]
圖
graph TD tjg(圖) --> tdsy[圖的術語] tjg --> ccjg3(存儲結構) ccjg3 --> ljjz[鄰接矩陣] ccjg3 --> ljb[鄰接表] ccjg3 --> szlb[十字鏈表] ccjg3 --> ljdcb[臨界多重表] tjg --> tdbl(圖的遍歷) tdbl --> sdyxss[深度優先搜索] tdbl --> gdyxss[廣度優先搜索] tjg --> tdyy(圖的應用) tdyy --> zxscs(最小生成樹) zxscs --> Prim[Prim算法] zxscs --> Kruskal[Kruskal算法] tdyy --> zdlj(最短路徑) zdlj --> Dijkstra[Dijkstra算法] zdlj --> Floyd[Floyd算法] tdyy --> tppx(拓撲排序) tppx --> aov[AOV網] tdyy --> gjlj(關鍵路徑) gjlj --> aoe[AOE網]
算法
定義
graph TD sf(算法) sf --> dy[定義] sf --> tx(特性) tx --> yqx[有窮性] tx --> qdx[確定性] tx --> kxx[可行性] tx --> sr[輸入] tx --> sc[輸出] sf --> pjbz(評價標准) pjbz --> zqx[正確性] pjbz --> kdx[可讀性] pjbz --> jzx[健壯性] pjbz --> gxx[高效性] sf -->xlld(效率量度) xlld --> sjfzd[時間復雜度] xlld --> kjfzd[空間復雜度]
查找
graph TD cz(查找) --> xxb(線性表) xxb --> sxcz[順序查找] xxb --> zbcz[折半查找] xxb --> fkcz[分塊查找] cz --> sb(樹表) sb --> ecpxs[二叉排序樹] sb --> phecs[平衡二叉樹] sb --> bjian[B-樹] sb --> bjia[B+樹] cz --> slb(散列表) slb --> kfdzf(開放地址法) kfdzf --> xxtcf[線性探測法] kfdzf --> ectcf[二次探測法] kfdzf --> wsjsf[偽隨機數法] slb --> ldzf[鏈地址法]
排序
graph TD px(排序) px --> nbpx(內部排序) nbpx --> crpx(插入排序) crpx --> zjcrpx[直接插入排序] crpx --> zbcrpx[折半插入排序] crpx --> xepx[希爾排序] nbpx --> jhpx(交換排序) jhpx --> mppx[冒泡排序] jhpx --> kspx[快速排序] nbpx --> xzpx(選擇排序) xzpx --> jdxzpx[簡單選擇排序] xzpx --> dpx[堆排序] nbpx --> gbpx[歸並排序] nbpx --> jspx[基數排序] px --> wbpx(外部排序) wbpx --> dlphgb[多路平衡歸並] wbpx --> zhxzpx[轉換選擇排序]
總覽
graph LR sjjg(數據結構) sjjg --> ljjg(邏輯結構) ljjg --> xxjg(線性結構) xxjg --> xxb[線性表] xxjg --> zhdl[棧和隊列] xxjg --> zfc[字符串] ljjg --> fxxjg(非線性結構) fxxjg --> jhjg[集合結構] fxxjg --> sjg[樹結構] fxxjg --> tjg[圖結構] sjjg --> ccjg(存儲結構) ccjg --> sxccjg[順序存儲結構] ccjg --> lsccjg[鏈式存儲結構] xxb --> sxb(順序表) sxb --> qzcz[取值操作] sxb --> czcz[查找操作] sxb --> crcz[插入操作] sxb --> sccz[刪除操作] xxb --> lb(鏈表) lb --> dlb(單鏈表) dlb --> cjcz(創建操作) cjcz --> qcf[前插法] cjcz --> hcf[后插法] dlb --> qzcz2[取值操作] dlb --> czcz2[查找操作] dlb --> crcz2[插入操作] dlb --> sccz2[刪除操作] lb --> xhlb[循環鏈表] lb --> sxlb[雙向鏈表] sxlb--> crcz3[插入操作] sxlb--> sccz3[刪除操作] xxb--> xxbdyy(線性表的應用) xxbdyy--> xxbdhb[線性表的合並] xxbdyy--> yxbdhb[有序表的合並] zhdl -->z(棧) z --> sxz(順序棧) sxz --> jz[進棧] sxz --> cz[出棧] z --> lz(鏈棧) lz --> jz2[進棧] lz --> cz2[出棧] zhdl-->dl(隊列) dl --> xhdl(循環隊列) xhdl --> jd(進隊) xhdl --> cd(出隊) dl -->ld(鏈隊) ld --> jd2[進隊] ld --> cd2[出隊] zhdl --> zdyy(棧的應用) zdyy --> dgsf[遞歸算法] zdyy --> bdsqzsf(表達式求值算法) bdsqzsf --> zzbdsqz[中綴表達式求值] bdsqzsf --> zzbdszhwhzbds[中綴表單時轉換為后綴表達式] bdsqzsf --> hzbdsqz[后追表達式求值] xxb -->|內容受限制的線性表|c(串) c --> bfsf[BF算法] c --> kmpsf(KMP算法) kmpsf --> next[next數組計算] kmpsf --> nextval[nextval數組計算] xxb -->|多維數組可看做線性表的推廣|sz(數組) sz --> ahcc[按行存儲] sz --> alcc[按列存儲] sz --> yscc[壓縮存儲] yscc -->dcjz[對稱矩陣] yscc -->sjjz[三角矩陣] yscc -->djjz[對角矩陣] xxb -->|線性表的推廣|gyb(廣義表) gyb -->xggn(相關概念) xggn -->cd3[長度] xggn -->sd[深度] gyb -->jbcz(基本操作) jbcz -->qbt[取表頭] jbcz -->qbw[取表尾] sjg --> ecs(二叉樹) ecs --> xz(性質) xz --> pterc[普通二叉樹的3個性質] xz --> wqecs[完全二叉樹的2個性質] ecs --> ccjg2(存儲結構) ccjg2 --> sxcc[順序存儲] ccjg2 --> eclb[二叉鏈表] ecs --> bl(遍歷) bl --> xxbl[先序] bl --> zxbl[中序] bl --> hxbl[后序] ecs --> xsecs(線索二叉樹) xsecs --> xssdcj[線索樹的創建] xsecs --> xssdbl[線索樹的遍歷] ecs --> yy(應用) yy -->hfmscs[哈夫曼樹的創建] yy -->hfmbmqj[哈夫曼編碼的求解] sjg -->shsl(樹和森林) shsl -->sdccjg(樹的存儲結構) sdccjg --> sqbsf[雙親表示法] sdccjg --> hzbsf[孩子表示法] sdccjg --> hzxdbsf[孩子兄弟表示法] shsl --> slyecszh[森林與二叉樹的轉換] shsl --> shsldbl[樹和森林的遍歷] tjg --> tdsy[圖的術語] tjg --> ccjg3(存儲結構) ccjg3 --> ljjz[鄰接矩陣] ccjg3 --> ljb[鄰接表] ccjg3 --> szlb[十字鏈表] ccjg3 --> ljdcb[臨界多重表] tjg --> tdbl(圖的遍歷) tdbl --> sdyxss[深度優先搜索] tdbl --> gdyxss[廣度優先搜索] tjg --> tdyy(圖的應用) tdyy --> zxscs(最小生成樹) zxscs --> Prim[Prim算法] zxscs --> Kruskal[Kruskal算法] tdyy --> zdlj(最短路徑) zdlj --> Dijkstra[Dijkstra算法] zdlj --> Floyd[Floyd算法] tdyy --> tppx(拓撲排序) tppx --> aov[AOV網] tdyy --> gjlj(關鍵路徑) gjlj --> aoe[AOE網]
以上內容改編自《數據結構習題解析與實驗指導》李冬梅 張琪 著
以上內容轉自奔_gis