




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章棧和隊(duì)列主講:薛春艷棧的定義及實(shí)現(xiàn)1棧的應(yīng)用2隊(duì)列的定義及實(shí)現(xiàn)3隊(duì)列的應(yīng)用4主要內(nèi)容§3.1.1
棧的定義【定義】棧是限定在一端進(jìn)行插入和刪除操作的線性表。
棧頂:允許插入和刪除的一端叫做棧頂。棧底:不允許插入和刪除的一端叫做棧底。入棧(進(jìn)棧):向棧中插入數(shù)據(jù)元素的操作。出棧(退棧):從棧中刪除數(shù)據(jù)元素的操作。空棧:當(dāng)棧中沒有數(shù)據(jù)元素時(shí)稱為空棧。a1a2a3an-1an…入棧出棧棧頂元素棧底元素
a1a2a3…an-1an入棧出棧棧頂元素棧底元素棧的結(jié)構(gòu)特點(diǎn)每次進(jìn)棧的元素都被放在原棧頂元素之上而成為新的棧頂元素。每次出棧的總是當(dāng)前棧中“最新”的元素,即最后進(jìn)棧的元素——當(dāng)前的棧頂元素。
若要將一個(gè)非棧頂元素轉(zhuǎn)化為棧頂元素,需要將這個(gè)元素上面的數(shù)據(jù)元素全部刪掉。元素若以a1,a2,…,an的順序進(jìn)棧,則退棧的次序?yàn)閍n,an-1,…,a1?!娟P(guān)系】棧中數(shù)據(jù)元素之間是線性關(guān)系?!緮?shù)據(jù)元素】可以是任意類型的數(shù)據(jù),但必須屬于同一個(gè)數(shù)據(jù)對象。
【基本操作】1.InitStack(S)
2.ClearStack(S)
3.IsEmpty(S)4.IsFull(S)
5.Push(S,x)6.Pop(S,x)
7.GetTop(S,x)
8.DestroyStack(&S)9.StackLength(S)棧的抽象數(shù)據(jù)類型定義①順序棧中數(shù)據(jù)元素用數(shù)組存放。②順序棧的棧底位置是固定不變的,設(shè)置在順序表的表頭。③順序棧的棧頂位置是隨著進(jìn)棧和退棧操作而變化的,用一個(gè)整型量top(棧頂元素在數(shù)組中的下標(biāo))來指示當(dāng)前棧頂位置。④棧的最大長度為MAXSIZE,即top==MAXSIZE-1,說明棧已滿,不能再進(jìn)行入棧操作了。ABCtop
ABC
…elem[0]elem[1]elem[top]elem[MAXSIZE-1]棧底棧頂元素top空棧
topabcdef進(jìn)棧溢出topb進(jìn)棧abtopabcdee進(jìn)棧topabdee退棧ctopa進(jìn)棧a用來存放棧頂元素的下標(biāo),top為-1表示空棧.top空棧topabdd退棧cc退棧topabcb退棧abtopaa退棧top§3.1.2棧的順序存儲結(jié)構(gòu)typedefintElemType; //數(shù)據(jù)元素的類型為整型constintMAXSIZE=100; //數(shù)組的容量classSqStack{private:ElemTypeelem[MAXSIZE];inttop;public:~SqStack(){}; //析構(gòu)函數(shù)
SqStack(){top=-1;}//構(gòu)造函數(shù),初始化一個(gè)空棧
voidSetEmpty(){top=-1;} //置已有的棧為空棧
voidpush(ElemTypee); //進(jìn)棧
ElemTypepop(); //出棧
voidPrintOut(); //輸出棧中數(shù)據(jù)元素
ElemTypeGettop(); //取棧頂元素?cái)?shù)據(jù)
};voidSqStack::push(ElemTypee){if(top==MAXSIZE-1) cout<<"\n棧滿溢出"<<endl;else{top++;elem[top]=e;}}【操作結(jié)果】在S頂部插入數(shù)據(jù)元素x。入棧操作topAtopABtopElemTypeSqStack::pop(){ElemTypex;if(top==-1){cout<<"\n棧為空,不能進(jìn)行出棧操作"<<endl;return0; }else{x=elem[top]; top--;returnx;}}出棧操作ABCDtopABCtopABtopElemTypeSqStack::Gettop(){if(top==-1){cout<<“空棧!”;
return-1;}else
returnelem[top];}【操作結(jié)果】取棧頂數(shù)據(jù)元素的值賦給x。取棧頂數(shù)據(jù)元素操作ABCDtopx=elem[top]voidSqStack::PrintOut(){cout<<"\nPrintOutData:\n";if(top==-1)cout<<"\n已是空棧!";
//if(IsEmpty())cout<<"\n已是空棧!"else{for(intk=top;k>=0;k--) cout<<setw(6)<<elem[k]; cout<<endl;}}輸出棧內(nèi)元素鏈棧:采用鏈表作為存儲結(jié)構(gòu)實(shí)現(xiàn)的棧叫做鏈棧。一般采用帶頭結(jié)點(diǎn)的單鏈表實(shí)現(xiàn)棧。由于棧的插入和刪除操作僅限制在表頭位置進(jìn)行,所以鏈表的表頭指針可以作為棧頂指針來使用?!?.1.3棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)ana2a1∧an-1……top空棧:top->next=NULLtop∧top:棧頂指針,始終指向當(dāng)前棧頂元素前面的頭結(jié)點(diǎn)。頭結(jié)點(diǎn)棧頂元素棧底元素鏈棧的類定義typedefintElemType;structLsnode{ElemTypedata;Lsnode*next;};classLsStack{private:Lsnode*top; //棧頂指針
public:LsStack(); //構(gòu)造函數(shù),建立空棧
~LsStack(){} //析構(gòu)函數(shù)
voidSetEmpty(); //將現(xiàn)有的棧置空
voidDisplay(); //顯示棧數(shù)據(jù)內(nèi)容
voidPush(ElemTypex); //進(jìn)棧
ElemTypePop(); //出棧};LsStack::LsStack()
{top=newLsnode; top->next=NULL;}構(gòu)造函數(shù)操作voidLsStack::SetEmpty()//將已有的鏈棧清空{(diào)Lsnode*p=top->next,*q;while(p!=NULL){top->next=p->next; deletep; //刪除一個(gè)結(jié)點(diǎn)
p=top->next;}}清空操作LsStack::~LsStack()//將已有的鏈棧清空{(diào)SetEmpty();deletetop;top=NULL;}析構(gòu)函數(shù)操作top∧初始化的空棧申請新結(jié)點(diǎn)p->data=x;p->next=NULL;ptopx∧x∧pai-1a1∧a2……topxp鏈棧的入棧操作第一個(gè)結(jié)點(diǎn)入棧top->next=p;第i個(gè)結(jié)點(diǎn)入棧p->next=top->next;top->next=p;voidLsStack::Push(ElemTypex) //進(jìn)棧Push{Lsnode*p;p=newLsnode;//申請一個(gè)結(jié)點(diǎn)
p->data=x;p->next=top->next;top->next=p;}入棧操作鏈棧的出棧操作棧頂結(jié)點(diǎn)出棧top->next=p->next;x=p->data;deletep;anan-1toppa1∧……出棧結(jié)點(diǎn)的存儲空間被釋放ElemTypeLsStack::Pop() {Lsnode*p;ElemTypex;if(top!=NULL) {p=top->next;top->next=top->next->next;x=p->data; deletep;returnx; }else{cout<<"\nStackNull!\n";return0;}}出棧操作§3.1.4棧的應(yīng)用
表達(dá)式求值:表達(dá)式由操作數(shù)、運(yùn)算符、界限符組成。操作數(shù)(operand):常數(shù)或變量運(yùn)算符(operator):
算術(shù)運(yùn)算符:+、-、*、/等等。關(guān)系運(yùn)算符:≠、=、≤、≥、<、>邏輯運(yùn)算符:AND、OR、NOT界限符(delimiter):
左右括號,表達(dá)式結(jié)束符#等。
θ1θ2 + - * / ( ) #
+ > > < < < > >- > > < < < > >* > > > > < > >/ > > > > < > >( < < < < < = ) > > > > > >#< < < < < = 算符優(yōu)先關(guān)系表1、先乘除、后加減2、同級運(yùn)算符先左后右3、先括號內(nèi),后括號外4、表達(dá)式的開始結(jié)束5、其他情況運(yùn)算過程中,任意兩個(gè)相繼出現(xiàn)的算符θ1、θ2之間的優(yōu)先關(guān)系如下:第一步:規(guī)定運(yùn)算符的優(yōu)先級關(guān)系,即生成算符優(yōu)先級關(guān)系表;第二步:設(shè)置兩個(gè)棧:OPTR運(yùn)算符棧(‘
#’入棧)、OPND操作數(shù)棧;第三步:從左到右依次讀出表達(dá)式中的各個(gè)符號(運(yùn)算符或操作數(shù)),每讀出一個(gè)符號按以下原則進(jìn)行處理:表達(dá)式求值——算法思想若讀出的是操作數(shù),則將該操作數(shù)壓入操作數(shù)棧,并依次讀入下一個(gè)符號。若讀出的是運(yùn)算符,則作進(jìn)一步判斷:①若讀出的當(dāng)前運(yùn)算符的優(yōu)先級大于運(yùn)算符棧棧頂運(yùn)算符的優(yōu)先級,則將讀出的運(yùn)算符壓入運(yùn)算符棧,并依次讀入表達(dá)式中下一個(gè)符號。②若讀出運(yùn)算符的優(yōu)先級低于運(yùn)算符棧頂運(yùn)算符的優(yōu)先級,則從操作數(shù)棧連續(xù)退戰(zhàn)兩次,依次得到兩個(gè)操作數(shù)b、a(表達(dá)式中的運(yùn)算符都是雙目運(yùn)算符,所以需要兩個(gè)操作數(shù)),并從運(yùn)算符棧退出一個(gè)運(yùn)算符送入θ,然后對a、b進(jìn)行θ運(yùn)算,并將運(yùn)算結(jié)果作為中間結(jié)果壓入操作數(shù)棧。③若棧頂運(yùn)算符的優(yōu)先級與剛讀入的運(yùn)算符的優(yōu)先級相同,說明左右括號相遇,只需將棧頂運(yùn)算符(左括號)退棧即可。④若讀出的是表達(dá)式界限符‘
#’,且運(yùn)算符棧棧頂元素也是‘
#’,則說明表達(dá)式起始符“#”與表達(dá)式結(jié)束符“#”相遇,整個(gè)表達(dá)式求值完畢。最后的計(jì)算結(jié)果在操作數(shù)棧的棧頂位置。topn操作數(shù)運(yùn)算符#topt3×(7–2)#操作數(shù)3運(yùn)算符#topntopt3×(7–2)#Push(OPND,’3’)操作數(shù)3運(yùn)算符#×topntopt×(7–2)#Push(OPTR,’×’)操作數(shù)3運(yùn)算符#×(topntopt(7–2)#Push(OPTR,’(’)操作數(shù)37運(yùn)算符#×(topntopt7–2)#Push(OPND,’7’)操作數(shù)37運(yùn)算符#×(-topntopt–2)#Push(OPTR,’-’)操作數(shù)372運(yùn)算符#×(-topntopt2)#Push(OPND,’2’)操作數(shù)35運(yùn)算符#×(topntopt)#Operate(‘7’,’-‘,’2’)操作數(shù)35運(yùn)算符#×topntopt#Pop(OPTR)操作數(shù)15運(yùn)算符#topntopt#Operate(‘3’,‘×’,‘5’)操作數(shù)15運(yùn)算符#topntoptreturn(GetTop(OPND))一個(gè)遞歸函數(shù)的運(yùn)行過程類似于多個(gè)函數(shù)的嵌套調(diào)用,差別僅在于"調(diào)用函數(shù)和被調(diào)用函數(shù)是同一個(gè)函數(shù)"。為了保證"每一層的遞歸調(diào)用"都是對"本層"的數(shù)據(jù)進(jìn)行操作,在執(zhí)行遞歸函數(shù)的過程中需要一個(gè)"遞歸工作棧"。它的作用是:1、將遞歸調(diào)用時(shí)的實(shí)際參數(shù)和函數(shù)返回地址傳遞給下一層執(zhí)行的遞歸函數(shù);2、保存本層的參數(shù)和局部變量,以便從下一層返回時(shí)重新使用它們。棧與遞歸的實(shí)現(xiàn)遞歸:函數(shù)直接或間接的調(diào)用自己的過程叫做遞歸。voidprint(intw){inti;if(w!=0){print(w-1);for(i=1;i<=w;i++)printf(“%3d”,w);printf(“\n”);}}遞歸的執(zhí)行情況分析遞歸調(diào)用執(zhí)行情況如下:W=3Print(2);for(i=1;i<=w;i++)printf(“%3d”,w);printf(“\n”);W=2Print(1);for(i=1;i<=w;i++)printf(“%3d”,w);printf(“\n”);W=1Print(0);for(i=1;i<=w;i++)printf(“%3d”,w);printf(“\n”);W=0(3)w=1(2)w=2(1)w=3top122333§3.2.1隊(duì)列的定義【定義】隊(duì)列:只能在表的一端進(jìn)行插入操作,在表的另一端進(jìn)行刪除操作的線性表。
隊(duì)尾(rear):允許插入的一端叫做隊(duì)尾。隊(duì)頭(front):允許刪除的一端叫做隊(duì)頭。入隊(duì):向隊(duì)列中插入數(shù)據(jù)元素的操作。出隊(duì):從隊(duì)列中刪除數(shù)據(jù)元素的操作??贞?duì)列:隊(duì)列中沒有數(shù)據(jù)元素時(shí)稱為空隊(duì)列。a1a2a3…an-1an入隊(duì)列出隊(duì)列隊(duì)尾元素隊(duì)頭元素每次入隊(duì)列的元素都被放在原隊(duì)尾元素之后而成為新的隊(duì)尾元素。每次出隊(duì)列的總是當(dāng)前隊(duì)列中“最舊”的元素,即最先入隊(duì)列的元素—當(dāng)前的隊(duì)頭元素。
隊(duì)列中的數(shù)據(jù)元素元素若以a1,a2,…,an的次序依次進(jìn)隊(duì)列,則只能依相同次序退出隊(duì)列。即a1是第一個(gè)出隊(duì)列的元素,只有在a1,a2,…,an-1
都離開隊(duì)列之后,an才能出隊(duì)列。frontrear空隊(duì)列frontrearA入隊(duì)AfrontrearB入隊(duì)ABfrontrearC,D入隊(duì)ABCDfrontrearA出隊(duì)BCDfrontrearB出隊(duì)CDfrontrearE,F,G入隊(duì)CDEFGCDEFGfrontrearH入隊(duì),溢出隊(duì)列的入隊(duì)和出隊(duì)§3.2.3隊(duì)列的順序存儲結(jié)構(gòu)用一組地址連續(xù)的存儲單元依次存放從隊(duì)列頭到隊(duì)列尾的數(shù)據(jù)元素。附設(shè)兩個(gè)變量front指示隊(duì)列頭元素的位置(隊(duì)頭元素在數(shù)組中的下標(biāo)),rear指示隊(duì)列尾元素的下一個(gè)位置(隊(duì)尾元素下一個(gè)位置在數(shù)組中的下標(biāo))。初始化空隊(duì)列:front=rear=0;數(shù)據(jù)元素入隊(duì)時(shí)rear加一;隊(duì)頭元素出隊(duì)時(shí)front加一。隊(duì)列滿的判別條件:rear==MAXSIZE。typedefintElemType;structSeQueuestr{ElemTypeelem[MAXSIZE];//一維數(shù)組
intfront,rear;//頭、尾指針};順序隊(duì)列的入隊(duì)和出隊(duì)(c)A出隊(duì)列后的狀態(tài)CB012345frontrear(a)空隊(duì)列012345frontrear(b)A、B、C入隊(duì)列后的狀態(tài)CBA012345frontrearEDC(d)D、E、F入隊(duì)列后的狀態(tài)012345Ffrontrear順序隊(duì)列滿的判別條件:rear==MAXSIZE真正隊(duì)滿的條件:rear-front==MAXSIZE【假溢出】順序隊(duì)列因多次入隊(duì)列和出隊(duì)列操作后出現(xiàn)的有存儲空間但不能進(jìn)行入隊(duì)列操作的溢出?!窘鉀Q辦法】1、采用循環(huán)隊(duì)列;
2、按最大可能的進(jìn)隊(duì)操作次數(shù)設(shè)置順序隊(duì)列的最大元素個(gè)數(shù);
3、修改出隊(duì)算法,使每次出隊(duì)列后都把隊(duì)列中剩余數(shù)據(jù)元素向隊(duì)頭方向移動一個(gè)位置;
4、修改入隊(duì)算法,增加判斷條件,當(dāng)假溢出時(shí),把隊(duì)列中的數(shù)據(jù)元素向隊(duì)頭移動,然后再完成入隊(duì)操作。順序隊(duì)列的“假溢出”【循環(huán)隊(duì)列】
把順序隊(duì)列所使用的存儲空間臆造成一個(gè)邏輯上首尾相連的循環(huán)隊(duì)列?!?.2.4循環(huán)隊(duì)列EDC0123MAXSIZE-1rearfront循環(huán)隊(duì)列…54順序隊(duì)列rearCDEMAXSIAZE-1.
543210front…循環(huán)隊(duì)列的結(jié)構(gòu)特點(diǎn)循環(huán)隊(duì)列和非循環(huán)順序隊(duì)列的存儲表示是完全一樣的。循環(huán)隊(duì)列的實(shí)質(zhì)就是順序隊(duì)列。循環(huán)隊(duì)列是將表示順序隊(duì)列的數(shù)組看成一個(gè)環(huán)狀的空間。即規(guī)定隊(duì)列中最后一個(gè)單元的直接后繼為隊(duì)列中的第一個(gè)單元。循環(huán)隊(duì)列不是在物理結(jié)構(gòu)上實(shí)現(xiàn)的真正的循環(huán),只是使隊(duì)列在邏輯上實(shí)現(xiàn)循環(huán)。循環(huán)隊(duì)列與普通的順序隊(duì)列指針變化:順序隊(duì)列:入隊(duì)rear=rear+1;
出隊(duì)front=front+1;
循環(huán)隊(duì)列:
入隊(duì)rear=(rear+1)%MAXSIZE;
出隊(duì)front=(front+1)%MAXSIZE;隊(duì)滿:rear==front7012rearfront3465a17012a0a2front3465a6a5a4a3reara7
隊(duì)空:rear==front入隊(duì):rear=(rear+1)%MAXSIZE出隊(duì):front==(front+1)%MAXSIZEfronta97012a83465reara767012a2front345a6a5a4a3reara7【順序循環(huán)隊(duì)列的隊(duì)空和隊(duì)滿判斷】①使用一個(gè)計(jì)數(shù)器記錄隊(duì)列中元素個(gè)數(shù)(即隊(duì)列長度);判隊(duì)滿:count>0&&rear==front
判隊(duì)空:count==0②加設(shè)標(biāo)志位,出隊(duì)時(shí)置0,入隊(duì)時(shí)置1,則可識別當(dāng)前front==rear屬于何種情況判隊(duì)滿:tag==1&&rear==front
判隊(duì)空:tag==0&&rear==front
③少用一個(gè)存儲單元判隊(duì)滿:front==(rear+1)%MAXSIZE
判隊(duì)空:rear==front7012rearfront3465a17012reara0a2front3465a6a5a4a3A-G出隊(duì)H-N入隊(duì)01234567frontrear01234567frontJKrearIHLMN01234567frontrear空隊(duì)列A-G入隊(duì)45012367frontArearBCDEFG循環(huán)隊(duì)列的頭尾變化front、rear的移動方向都是順時(shí)針方向。front、rear的取值區(qū)間都是[0,MAXSIZE-1]。用來區(qū)別隊(duì)滿和隊(duì)空的少用的那個(gè)元素空間位置不是固定的,它是隨著front的位置變化而變化的。它總在front的前一個(gè)位置。rear永遠(yuǎn)追不上front(差一個(gè)位置:隊(duì)滿);front能夠追上rear(隊(duì)空)。循環(huán)隊(duì)列的類定義classSeQueue{private:ElemTypeelem[MAXSIZE];intfront,rear;public:SeQueue(){front=0;rear=0;}//初始化空隊(duì)列
~SeQueue(){};intEmpty();voidDisplay(); //輸出隊(duì)列
voidAddQ(ElemTypex); //進(jìn)隊(duì)
ElemTypeDelQ(); //出隊(duì)
};intSeQueue::AddQ(ElemTypex){if((rear+1)%MAXSIZE==front) return(0);elem[rear]=x;
rear=(rear+1)%MAXSIZE;
return(1);}循環(huán)隊(duì)列的入隊(duì)操作intSeQueue::DelQ(){if(Q->front==Q->rear)
{cout<<"\nQueueisEmpty!"<<endl; return(-1);}else{front=(front+1)%MAXSIZE;
return(elem[front-1]);}}循環(huán)隊(duì)列的出隊(duì)操作§3.2.2隊(duì)列的鏈?zhǔn)酱鎯Y(jié)構(gòu)typedefintElemType;structquenode{ElemTypedata; //數(shù)據(jù)域
quenode*next; //指針域};classLsQueue{private:quenode*front,*rear; //頭、尾指針
public:LsQueue();~LsQueue();intIsEmpty();voidDisplay();voidAddQ(ElemTypex);ElemTypeDelQ();};a1an∧a2……frontrear非空的鏈隊(duì)列空的鏈隊(duì)列判空條件:
front==rear;隊(duì)頭指針front:始終指向頭結(jié)點(diǎn)。隊(duì)尾指針rear:指向當(dāng)前鏈隊(duì)列中的最后一個(gè)數(shù)據(jù)元素。frontrear∧LsQueue::LsQueue()//構(gòu)造函數(shù),初始化空隊(duì)
{quenode*p;p=newquenode;p->next=NULL;front=rear=p;}鏈隊(duì)列的構(gòu)造函數(shù)Q.frontQ.rear∧intLsQueue::IsEmpty()//判鏈隊(duì)列是否為空
{if(front==rear)return1;elsereturn0;}鏈隊(duì)列的判空操作鏈隊(duì)列的入隊(duì)操作a1an……Q.frontQ.rear申請新結(jié)點(diǎn)temp->data=x;temp->next=NULL;x∧
s第n+1個(gè)結(jié)點(diǎn)入隊(duì)列:rear->next=s;rear=s;∧x∧svoidLsQueue::AddQ(ElemTypex){{quenode*s;s=newquenode;s->data=x;s->next=NULL;rear->next=s;rear=s;}鏈隊(duì)列的入隊(duì)操作鏈隊(duì)列的出隊(duì)列操作a1an……Q.frontQ.rear∧a2panQ.frontQ.rear∧p=front->next;front->next=p->next;deletep;
p=front->next; front->next=p->next;if(p->next==NULL)rear=front;deletep;pElemTypeLsQueue::DelQ() {ElemTypex;quenode*p;if(front==rear){cout<<"\n隊(duì)列為空。"<<endl;x=-1;}else{p=front->next; front->next=p->next;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國不銹鋼衛(wèi)浴拉桿行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國靜態(tài)電阻應(yīng)變儀數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年生產(chǎn)L型氨基酸的新酶種項(xiàng)目合作計(jì)劃書
- 診斷用生物藥品批發(fā)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 煤炭物流企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報(bào)告
- 耐酸運(yùn)輸帶企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 硼酸鋅企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 殘疾人自行車運(yùn)動推廣企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 蔬菜制品專門零售企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 飛機(jī)安全服務(wù)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 2024版非ST段抬高型急性冠脈綜合征診斷和治療指南解讀
- 2025初級會計(jì)理論考試100題及解析
- 中華人民共和國統(tǒng)計(jì)法
- 《 大學(xué)生軍事理論教程》全套教學(xué)課件
- 中考數(shù)學(xué)計(jì)算題練習(xí)100道(2024年中考真題)
- 業(yè)主授權(quán)租戶安裝充電樁委托書
- 工程變更聯(lián)系單、聯(lián)系單及要求
- 北京大學(xué)2018年第1批總第5批博雅博士后項(xiàng)目候選人名
- 氣質(zhì)類型測試量表
- 話單類型解析
- 趣味運(yùn)動會方案1
評論
0/150
提交評論