




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據結構課程的內容
2021/5/919.1基本概念9.2靜態(tài)查找表9.3動態(tài)查找表9.4哈希表第9章查找教材第8、11和12章省略,因《操作系統》課程會涉及。2021/5/929.1基本概念——若表中存在特定元素,稱查找成功,應輸出該記錄;——否則,稱查找不成功(也應輸出失敗標志或失敗位置)查找表查找查找成功查找不成功靜態(tài)查找動態(tài)查找關鍵字主關鍵字次關鍵字——由同一類型的數據元素(或記錄)構成的集合?!樵?Searching)特定元素是否在表中?!徊檎遥桓淖兗蟽鹊臄祿??!炔檎?,又改變(增減)集合內的數據元素?!涗浿心硞€數據項的值,可用來識別一個記錄
(預先確定的記錄的某種標志)
——可以唯一標識一個記錄的關鍵字例如“學號”例如“女”是一種數據結構——識別若干記錄的關鍵字2021/5/93(2)對查找表常用的操作有哪些?
查詢某個“特定的”數據元素是否在表中;查詢某個“特定的”數據元素的各種屬性;在查找表中插入一元素;從查找表中刪除一元素。
(3)有哪些查找方法?
查找方法取決于表中數據的排列方式;討論:(1)查找的過程是怎樣的?
給定一個值K,在含有n個記錄的文件中進行搜索,尋找一個關鍵字值等于K的記錄,如找到則輸出該記錄,否則輸出查找不成功的信息。例如查字典針對靜態(tài)查找表和動態(tài)查找表的查找方法也有所不同。“特定的”=關鍵字2021/5/94(4)如何評估查找方法的優(yōu)劣?明確:查找的過程就是將給定的K值與文件中各記錄的關鍵字項進行比較的過程。所以用比較次數的平均值來評估算法的優(yōu)劣。稱為平均查找長度(ASL:averagesearchlength)。其中:n是文件記錄個數;Pi是查找第i個記錄的查找概率(通常取等概率,即Pi=1/n);Ci是找到第i個記錄時所經歷的比較次數。統計意義上的數學期望值物理意義:假設每一元素被查找的概率相同,則查找每一元素所需的比較次數之總和再取平均,即為ASL。顯然,ASL值越小,時間效率越高。2021/5/95針對靜態(tài)查找表的查找算法主要有:
9.2靜態(tài)查找表靜態(tài)查找表的抽象數據類型參見教材P216。一、順序查找(線性查找)二、折半查找(二分或對分查找)三、靜態(tài)樹表的查找四、分塊查找(索引順序查找)2021/5/96一、順序查找(Linearsearch,又稱線性查找)(1)順序表的機內存儲結構:typedefstruct{
ElemType*elem;
//表基址,0號單元留空。表容量為全部元素
intlength;
//表長,即表中數據元素個數}SSTable;順序查找:即用逐一比較的辦法順序查找關鍵字,這顯然是最直接的辦法。
對順序結構如何線性查找?見下頁之例或教材P216;對單鏈表結構如何線性查找?函數雖未給出,但也很容易編寫;只要知道頭指針head就可以“順藤摸瓜”;對非線性樹結構如何順序查找?可借助各種遍歷操作!2021/5/97(2)算法的實現:技巧:把待查關鍵字key存入表頭或表尾(俗稱“哨兵”),這樣可以加快執(zhí)行速度。例:若將待查找的特定值key存入順序表的首部(如0號單元),則順序查找的實現方案為:從后向前逐個比較!intSearch_Seq(SSTableST,KeyTypekey){
//在順序表ST中,查找關鍵字與key相同的元素;若成功,返回其位置信息,否則返回0
ST.elem[0].key=key;
//設立哨兵,可免去查找過程中每一步都要檢測是否查找完畢。當n>1000時,查找時間將減少一半。
for(i=ST.length;ST.elem[i].key!=key;--i);
//不要用for(i=n;i>0;--i)或for(i=1;i<=n;i++)
returni;
//若到達0號單元才結束循環(huán),說明不成功,返回0值(i=0)。成功時則返回找到的那個元素的位置i。}//Search_Seq2021/5/98——返回特殊標志,例如返回空記錄或空指針。前例中設立了“哨兵”,就是將關鍵字送入末地址ST.elem[0].key使之結束并返回i=0。討論②查找效率怎樣計算?——用平均查找長度ASL衡量。討論①查不到怎么辦?討論③如何計算ASL?分析:查找第1個元素所需的比較次數為1;查找第2個元素所需的比較次數為2;……查找第n個元素所需的比較次數為n;總計全部比較次數為:1+2+…+n=(1+n)n/2未考慮查找不成功的情況:查找哨兵所需的比較次數為n+1這是查找成功的情況若求某一個元素的平均查找次數,還應當除以n(等概率),即:ASL=(1+n)/2
,時間效率為O(n)2021/5/99二、折半查找(又稱二分查找或對分查找)優(yōu)點:算法簡單,且對順序結構或鏈表結構均適用。缺點:
ASL太長,時間效率太低。這是一種容易想到的查找方法。先給數據排序(例如按升序排好),形成有序表,然后再將key與正中元素相比,若key小,則縮小至右半部內查找;再取其中值比較,每次縮小1/2的范圍,直到查找成功或失敗為止。對順序表結構如何編程實現折半查找算法?
——見下頁之例,或見教材(P219)對單鏈表結構如何折半查找?
——無法實現!因全部元素的定位只能從頭指針head開始對非線性(樹)結構如何折半查找?
——可借助二叉排序樹來查找(屬動態(tài)查找表形式)。
如何改進?討論④順序查找的特點:2021/5/910②運算步驟:(1)low=1,high=11,mid=6,待查范圍是[1,11];(2)若ST.elem[mid].key<key,說明key[mid+1,high],則令:low=mid+1;重算mid=(low+high)/2;.(3)若ST.elem[mid].key>
key,說明key[low,mid-1],則令:high=mid–1;重算mid;(4)若ST.elem[mid].key=key,說明查找成功,元素序號=mid;結束條件:(1)查找成功:ST.elem[mid].key=key
(2)查找不成功:high<low
(意即區(qū)間長度小于0)解:①先設定3個輔助標志:
low,high,mid,折半查找舉例:Low指向待查元素所在區(qū)間的下界high指向待查元素所在區(qū)間的上界mid指向待查元素所在區(qū)間的中間位置
已知如下11個元素的有序表:
(0513192137566475808892),請查找關鍵字為21
和85的數據元素。顯然有:mid=(low+high)/22021/5/911討論①若關鍵字不在表中,怎樣得知和停止?——典型標志是:當查找范圍的上界≤下界時停止查找。討論②二分查找的效率(ASL)1次比較就查找成功的元素有1個(20),即中間值;2次比較就查找成功的元素有2個(21),即1/4處(或3/4)處;3次比較就查找成功的元素有4個(22),即1/8處(或3/8)處…4次比較就查找成功的元素有8個(23),即1/16處(或3/16)處………則第m次比較時查找成功的元素會有(2m-1)個;為方便起見,假設表中全部n個元素=2m-1個,此時就不討論第m次比較后還有剩余元素的情況了。全部比較總次數為1×20+2×21+3×22+4×23…+m×2m—1
=推導過程2021/5/912三、分塊查找(索引順序查找)這是一種順序查找的另一種改進方法。先讓數據分塊有序,即分成若干子表,要求每個子表中的數值(用關鍵字更準確)都比后一塊中數值?。ǖ颖韮炔课幢赜行颍H缓髮⒏髯颖碇械淖畲箨P鍵字構成一個索引表,表中還要包含每個子表的起始地址(即頭指針)。索引表最大關鍵字起始地址2212138920334244382448605874498653第1塊第2塊第3塊224886例:2248861713特點:塊間有序,塊內無序2021/5/913查找步驟分兩步進行:①對索引表使用折半查找法(因為索引表是有序表);②確定了待查關鍵字所在的子表后,在子表內采用順序查找法(因為各子表內部是無序表);查找效率:ASL=Lb+Lw對索引表查找的ASL對塊內查找的ASLS為每塊內部的記錄個數,n/s即塊的數目例如當n=9,s=3時,ASLbs=3.5,而折半法為3.1,順序法為52021/5/914特點:一、二叉排序樹的定義二、二叉排序樹的插入與刪除三、二叉排序樹的查找分析四、平衡二叉樹9.3動態(tài)查找表表結構在查找過程中動態(tài)生成。要求:對于給定值key,若表中存在其關鍵字等于key的記錄,則查找成功返回;否則插入關鍵字等于key的記錄。典型的動態(tài)表———二叉排序樹2021/5/915一、二叉排序樹的定義(a)(b)練:下列2種圖形中,哪個不是二叉排序樹?----或是一棵空樹;或者是具有如下性質的非空二叉樹:
(1)左子樹的所有結點均小于根的值;(2)右子樹的所有結點均大于根的值;(3)它的左右子樹也分別為二叉排序樹。討論:對(a)中序遍歷后的結果是什么?2021/5/916二、二叉排序樹的查找、插入與刪除將數據元素構造成二叉排序樹的優(yōu)點:①查找過程與順序結構有序表中的折半查找相似,查找效率高;②中序遍歷此二叉樹,將會得到一個關鍵字的有序序列(即實現了排序運算);③一個無序序列可以通過構造一棵二叉排序樹而變成一個有序序列,構造樹的過程即為對無序序列進行排序的過程。④如果查找不成功,能夠方便地將被查元素插入到二叉樹的葉子結點上,而且插入或刪除時只需修改指針而不需移動元素。注:若數據元素的輸入順序不同,則得到的二叉排序樹形態(tài)也不同!——這種既查找又插入的過程稱為動態(tài)查找。二叉排序樹既有類似于折半查找的特性,又采用了鏈表存儲,它是動態(tài)查找表的一種適宜表示。2021/5/9174524531290如果待查找的關鍵字序列輸入順序為:(24,53,45,45,12,24,90),2453451290查找成功,返回查找成功,返回討論1:二叉排序樹的插入和查找操作
則生成二叉排序樹的過程為:例:輸入待查找的關鍵字序列=(45,24,53,45,12,24,90)則生成的二叉排序樹形態(tài)不同:查找成功,返回查找成功,返回2021/5/918二叉排序樹的查找&插入算法如何實現?查找算法參見教材P228算法9.5(a);插入算法參見教材P228算法9.5(b)_9.6;一種“二合一”的算法如下:2021/5/919BiTreeSearchBST(BiTreeT,KeyTypekey){//若查找成功,則返回指向該數據元素結點的指針,否則返回空指針
if((!T)||EQ(key,T—>data.key))return(T);
//查找結束
elseifLT(key,T—>data.key)//在左子樹中繼續(xù)查找
return(SearchBST(T—>lchild,key));
elsereturn(SearchBST(T—>rchild,key));
//在右子樹中繼續(xù)查找
}//SearchBST2021/5/920StatusSearchBST(BiTreeT,KeyTypekey,BiTreef,BiTree&p){
if(!T){p=f;returnFALSE;}//查找不成功
elseifEQ(key,T—>data.key){p=T;returnTRUE;}//查找成功
elseifLT(key,T—>data.key)returnSearchBST(T—>lchild,key,T,p);
//在左子樹中繼續(xù)查找
elsereturnSearchBST(T—>rchild,key,T,p);
//在右子樹中繼續(xù)查找}//SearchBST2021/5/921StatusInsertBST(BiTree&T,ElemTypee){if(!SearchBST(T,e.key,NULL,p))//查找不成功
{s=(BiTree)malloc(sizeof(BiTNode));
s—>data=e;s—>lchild=s—>rchild=NULL;//建立新結點
if(!p)T=s;//T為空樹
elseifLT(e.key,p—>data.key)p—>lchild=s;//被插結點*s為左孩子
elsep—>rchild=s;//被插結點*s為右孩子
returnTRUE;
}elsereturnFALSE;//樹中已有關鍵字相同的結點,不再插入}//InsertBST2021/5/922對于二叉排序樹,刪除樹上一個結點相當于刪除有序序列中的一個記錄,刪除后仍需保持二叉排序樹的特性。(對鏈表進行刪除操作是很方便的)討論2:二叉排序樹的刪除操作如何刪除一個結點?假設:*p表示被刪結點的指針;PL和PR
分別表示*P的左、右孩子指針;*f表示*p的雙親結點指針;并假定*p是*f的左孩子;則可能有三種情況:PR為*S的右子樹;SL為Q(*S的雙親結點)右孩子*p為葉子:
刪除此結點時,直接修改*f指針域即可;*p只有一棵子樹(或左或右):令PL或PR為*f的左孩子即可;*p有兩棵子樹:情況最復雜→2021/5/923*p有兩棵子樹時,如何進行刪除操作?分析:設刪除前的中序遍歷序列為:….spPR….
//顯然p的直接前驅是s希望刪除p后,其它元素的相對位置不變。有兩種解決方法:法1:令*p的左子樹為*f的左子樹,*p的右子樹為*s的右子樹;//即FL=PL;FR=PR;法2:令*s代替*p//
*s為*p左子樹最右下的葉子見課本P230圖9.92021/5/924FCCLSSLQLPPRQPRFCCLSSLQLPPRQ法2:FCCLSSLQLPPRQ法1:例:請從下面的二叉排序樹中刪除結點P。SSL2021/5/925四、平衡二叉樹平衡二叉樹又稱AVL樹,它是具有如下性質的二叉樹:為了方便起見,給每個結點附加一個數字,給出該結點左子樹與右子樹的高度差。這個數字稱為結點的平衡因子balance。這樣,可以得到AVL樹的其它性質:即|左子樹深度-右子樹深度|≤1左、右子樹是平衡二叉樹;所有結點的左、右子樹深度之差的絕對值≤12021/5/926(a)平衡樹(b)不平衡樹例:判斷下列二叉樹是否AVL樹?任一結點的平衡因子只能?。?1、0
或
1;如果樹中任意一個結點的平衡因子的絕對值大于1,則這棵二叉樹就失去平衡,不再是AVL樹;對于一棵有n個結點的AVL樹,其高度保持在O(log2n)數量級,ASL也保持在O(log2n)量級。00011-1-120001-12021/5/927如果在一棵AVL樹中插入一個新結點,就有可能造成失衡,此時必須重新調整樹的結構,使之恢復平衡。我們稱調整平衡過程為平衡旋轉?,F分別介紹這四種平衡旋轉。平衡旋轉可以歸納為四類:
LL平衡旋轉
RR平衡旋轉
LR平衡旋轉
RL平衡旋轉2021/5/928若在A的左子樹的左子樹上插入結點,使A的平衡因子從1增加至2,需要進行一次順時針旋轉。(以B為旋轉軸)ABCABC1)LL平衡旋轉:AB2021/5/929若在A的右子樹的右子樹上插入結點,使A的平衡因子從-1增加至-2,需要進行一次逆時針旋轉。(以B為旋轉軸)2)RR平衡旋轉:ABCABCAB2021/5/930若在A的左子樹的右子樹上插入結點,使A的平衡因子從1增加至2,需要先進行逆時針旋轉,再順時針旋轉。(以插入的結點C為旋轉軸)ABCABABC3)LR平衡旋轉:ABC2021/5/931若在A的右子樹的左子樹上插入結點,使A的平衡因子從-1增加至-2,需要先進行順時針旋轉,再逆時針旋轉。(以插入的結點C為旋轉軸)4)RL平衡旋轉:ABABCABCABC2021/5/932013037024例:請將下面序列構成一棵平衡二叉排序樹:
(13,24,37,90,53)013037-113024-124-213需要RR平衡旋轉(繞B逆轉,B為根)090-124-137053190-237需要RL平衡旋轉(繞C先順后逆)037090053037090053
2021/5/9339.4哈希查找表一、哈希表的概念二、哈希函數的構造方法三、沖突處理方法四、哈希表的查找及分析2021/5/934一、哈希表的概念哈希表:即散列存儲結構。
散列法存儲的基本思想:建立關鍵碼字與其存儲位置的對應關系,或者說,由關鍵碼的值決定數據的存儲地址。優(yōu)點:查找速度極快(O(1)),查找效率與元素個數n無關!例1:若將學生信息按如下方式存入計算機,如:將2001011810201的所有信息存入V[01]單元;將2001011810202的所有信息存入V[02]單元;……將2001011810231的所有信息存入V[31]單元。欲查找學號為2001011810216的信息,便可直接訪問V[16]!2021/5/935例2:
有數據元素序列(14,23,39,9,25,11),若規(guī)定每個元素k的存儲地址H(k)=k,請畫出存儲結構圖。(注:H(k)=k稱為散列函數)解:根據散列函數H(k)=k,可知元素14應當存入地址為14的單元,元素23應當存入地址為23的單元,……,對應散列存儲表(哈希表)如下:討論:如何進行散列查找?根據存儲時用到的散列函數H(k)表達式,迅即可查到結果!例如,查找key=9,則訪問H(9)=9號地址,若內容為9則成功;若查不到,應當設法返回一個特殊值,例如空指針或空記錄。
地址…9…11…14…232425…39…內點:空間效率低!2021/5/936選取某個函數,依該函數按關鍵字計算元素的存儲位置,并按此存放;查找時,由同一個函數對給定值k計算地址,將k與地址單元中元素關鍵碼進行比,確定查找是否成功。通常關鍵碼的集合比哈希地址集合大得多,因而經過哈希函數變換后,可能將不同的關鍵碼映射到同一個哈希地址上,這種現象稱為沖突。若干術語
哈希方法(雜湊法)
哈希函數(雜湊函數)
哈希表
(雜湊表)
沖突哈希方法中使用的轉換函數稱為哈希函數(雜湊函數)按上述思想構造的表稱為哈希表(雜湊表)
2021/5/937有6個元素的關鍵碼分別為:(14,23,39,9,25,11)。選取關鍵碼與元素位置間的函數為H(k)=kmod7通過哈希函數對6個元素建立哈希表:253923914沖突現象舉例:6個元素用7個地址應該足夠!H(14)=14%7=011H(25)=25%7=4H(11)=11%7=4有沖突!01234562021/5/938所以,哈希方法必須解決以下兩個問題:1)構造好的哈希函數(a)所選函數盡可能簡單,以便提高轉換速度;(b)所選函數對關鍵碼計算出的地址,應在哈希地址集中大致均勻分布,以減少空間浪費。2)制定一個好的解決沖突的方案查找時,如果從哈希函數計算出的地址中查不到關鍵碼,則應當依據解決沖突的規(guī)則,有規(guī)律地查詢其它相關單元。在哈希查找方法中,沖突是不可能避免的,只能盡可能減少。2021/5/939二、哈希函數的構造方法常用的哈希函數構造方法有:直接定址法除留余數法數字分析法平方取中法折疊法隨機數法
要求一:n個數據原僅占用n個地址,雖然散列查找是以空間換時間,但仍希望散列的地址空間盡量小。要求二:無論用什么方法存儲,目的都是盡量均勻地存放元素,以避免沖突。2021/5/940Hash(key)=a·key+b(a、b為常數)優(yōu)點:以關鍵碼key的某個線性函數值為哈希地址,不會產生沖突.缺點:要占用連續(xù)地址空間,空間效率低。
例:關鍵碼集合為{100,300,500,700,800,900},選取哈希函數為Hash(key)=key/100,則存儲結構(哈希表)如下:01234567899008007005003001001、直接定址法2021/5/941Hash(key)=keymodp(p是一個整數)特點:以關鍵碼除以p的余數作為哈希地址。關鍵:如何選取合適的p?技巧:若設計的哈希表長為m,則一般取p≤m且為質數
(也可以是不包含小于20質因子的合數)。自練:自測卷簡答題第4小題2、除留余數法2021/5/942特點:某關鍵字的某幾位組合成哈希地址。所選的位應當是:各種符號在該位上出現的頻率大致相同。34705243491487348269634852703486305349805834796713473919例:有一組(例如80個)關鍵碼,其樣式如下:3、數字分析法討論:①第1、2位均是“3和4”,第3位也只有“
7、8、9”,因此,這幾位不能用,余下四位分布較均勻,可作為哈希地址選用。位號:①②③④⑤⑥⑦②
若哈希地址取兩位(因元素僅80個),則可取這四位中的任意兩位組合成哈希地址,也可以取其中兩位與其它兩位疊加求和后,取低兩位作哈希地址。2021/5/943特點:對關鍵碼平方后,按哈希表大小,取中間的若干位作為哈希地址。理由:因為中間幾位與數據的每一位都相關。例:2589的平方值為6702921,可以取中間的029為地址。5、折疊法特點:將關鍵碼自左到右分成位數相等的幾部分(最后一部分位數可以短些),然后將這幾部分疊加求和,并按哈希表表長,取后幾位作為哈希地址。適用于:每一位上各符號出現概率大致相同的情況。法1:移位法──將各部分的最后一位對齊相加。法2:間界疊加法──從一端向另一端沿分割界來回折疊后,最后一位對齊相加。例:元素42751896,用法1:427+518+96=1041
用法2:42751896—>724+518+69=13114、平方取中法2021/5/9446、隨機數法Hash(key)=random(key)(random為隨機函數)適用于:關鍵字長度不等的情況。造表和查找都很方便。①執(zhí)行速度(即計算哈希函數所需時間);②關鍵字的長度;③哈希表的大小;④關鍵字的分布情況;⑤查找頻率。小結:構造哈希函數的原則:2021/5/945三、沖突處理方法常見的沖突處理方法有:開放定址法(開地址法)鏈地址法(拉鏈法)再哈希法(雙哈希函數法)建立一個公共溢出區(qū)2021/5/9461、開放定址法(開地址法)
設計思路:有沖突時就去尋找下一個空的哈希地址,只要哈希表足夠大,空的哈希地址總能找到,并將數據元素存入。具體實現:Hi=(Hash(key)+di)modm(1≤i<m)
其中:
Hash(key)為哈希函數
m為哈希表長度
di
為增量序列1,2,…m-1,且di=i
(1)線性探測法含義:一旦沖突,就找附近(下一個)空地址存入。2021/5/947關鍵碼集為{47,7,29,11,16,92,22,8,3},設:哈希表表長為m=11;哈希函數為Hash(key)=keymod11;擬用線性探測法處理沖突。建哈希表如下:解釋:①47、7(以及11、16、92)均是由哈希函數得到的沒有沖突的哈希地址;012345678910477△▲△△例:291116922283②Hash(29)=7,哈希地址有沖突,需尋找下一個空的哈希地址:由H1=(Hash(29)+1)mod11=8,哈希地址8為空,因此將29存入。③
另外,22、8、3同樣在哈希地址上有沖突,也是由H1找到空的哈希地址的。其中3
還連續(xù)移動了兩次(二次聚集)2021/5/948線性探測法的優(yōu)點:只要哈希表未被填滿,保證能找到一個空地址單元存放有沖突的元素;線性探測法的缺點:可能使第i個哈希地址的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟考網絡應用實例分享試題及答案
- 微生物學期末試題及答案
- 網絡工程師前沿技術應考試題及答案
- 影像科面試題及答案
- 無碳小車測試題及答案
- 籃球教資面試題目大全及答案
- 與動物的親密接觸話題作文(11篇)
- 機電工程安全管理試題及答案
- 軟考網絡工程師試題及答案新手指南2025年
- 公共政策與社區(qū)治理試題及答案
- 藥理學知到智慧樹章節(jié)測試課后答案2024年秋哈爾濱商業(yè)大學
- 智能病歷質控系統需求說明
- 山東省煙臺市萊州市一中2025屆高考數學押題試卷含解析
- 2023年高考真題-生物(遼寧卷) 含答案
- 叉車出租行業(yè)市場調研分析報告
- 專題02代數推理題(真題2個考點模擬16個考點)(原卷版+解析)
- 變壓器維修投標方案
- 2025屆山東師范大學附中高考適應性考試歷史試卷含解析
- 四川省高職單招餐飲類《中式烹飪技藝》復習備考試題庫-下(判斷、簡答題)
- DL∕T 5783-2019 水電水利地下工程地質超前預報技術規(guī)程
- 中考字音字形練習題(含答案)-字音字形專項訓練
評論
0/150
提交評論