数据结构
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