嚴蔚敏版數(shù)據(jù)結(jié)構(gòu)所有算法代碼
《嚴蔚敏版數(shù)據(jù)結(jié)構(gòu)所有算法代碼》由會員分享,可在線閱讀,更多相關(guān)《嚴蔚敏版數(shù)據(jù)結(jié)構(gòu)所有算法代碼(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、嚴蔚敏版數(shù)據(jù)結(jié)構(gòu)所有算法代碼線性數(shù)據(jù)結(jié)構(gòu)2013年9月/線性表、鏈表/棧、隊列/數(shù)組、廣義表/串線性表typedefstructcharname20;/注意如果應(yīng)用指針的形式/在初始化每個結(jié)點時一定要先為結(jié)點中的每個變量開辟內(nèi)存空間charsex;charaddr100;unsignedintage;charphonenum20;node;/結(jié)點描述typedefstructnode*p;intlength;/當前順序表長度intlistsize;/當前分配的線性表長度list;/線性表描述listL;/定義一個線性表intinitlist(list&l)/構(gòu)造一個空的線性表l.p=(node
2、*)malloc(LIST_INIT_SIZE*sizeof(node);if(!(l.p)exit(1);l.length=0;l.listsize=LIST_INIT_SIZE;returntrue;voiddestroylist(list&l)/銷毀線性表操作if(l.p!=NULL)free(l.p);printf(銷毀成功!n);elseprintf(線性表不存在!n);intclearlist(list&l)/將線性表置空操作if(l.p=NULL)printf(線性表不存在!n);returnfalse;elsefree(l.p);l.p=(node*)malloc(l.list
3、size*sizeof(node);l.length=0;returntrue;intlistempty(list&l)/判斷線性表是否為空表if(l.p=NULL)returntrue;elsereturnfalse;-可編輯修改-用 e 返回表中第 i 個數(shù)據(jù)元素intgetelem(list&l,inti,node&e)/if(l.p=NULL)returnfalse;elsee=l.pi-1;returntrue;intpriorelem(list&l,inti,node&pre_e)/得到第i個元素的前驅(qū)元素if(i=0|l.p=NULL)returnfalse;elsepre_e=
4、l.pi-1;returntrue;intnextelem(list&l,inti,node&next_e)/得到表中第i個元素的后繼元素if(i=l.length|l.p=NULL)returnfalse;elsenext_e=l.pi+1;returntrue;intinsertlist(list&l,inti,node&e)/將元素e插入到表l中第i個元素的后面node*q,*k;if(il.length+1)returnfalse;if(l.length=l.listsize)l.p=(node*)realloc(l.p,(l.listsize+LISTINCREMENT)*sizeo
5、f(node);if(!l.p)exit(1);l.listsize+=LISTINCREMENT;k=&l.pi-1;for(q=&l.pl.length-1;qk;q-)*(q+1)=*q;*k=e;l.length+;returntrue;intdeletelist(list&l,inti,node&e)/刪除表中第i個元素并用e返回其值node*q;intj=i-1;if(il.length)returnfalse;e=l.pi-1;for(q=&l.pi-1;jl.length-1;j+)*q=*(+q);l.length-;returntrue;voidmergerlist(lis
6、tla,listlb,list&lc)/歸并兩個按非遞減排列的線性表intla_len,lb_len,i=1,j=1,k=0;nodeai,bj;la_len=la.length;lb_len=lb.length;while(i=la_len&j=lb_len)getelem(la,i,ai);getelem(lb,j,bj);if(ai.a=bj.a)-可編輯修改-insertlist(lc,+k,ai);i+;elseinsertlist(lc,+k,bj);j+;while(i=la_len)getelem(la,i,ai);insertlist(lc,+k,ai);i+;while(j
7、=lb_len)getelem(lb,j,bj);insertlist(lc,+k,bj);j+;intListAscendingOrder(list&l)/按結(jié)點中某一元素的比較升序排列線性表中的結(jié)點nodee;inti,j;if(l.p=NULL|l.length=1)returnERROR;for(i=0;il.length-1;i+)for(j=i+1;j=l.pj.num)e=l.pi;l.pi=l.pj;l.pj=e;returnOK;/省略降序排列voidMergerList(listla,listlb,list&lc)/將兩線性表升序排列后再歸并node*q,*k,e1;int
8、i=0,j=0,m=0,n;ListAscendingOrder(la);ListAscendingOrder(lb);printf(表a升序排列后為:n);for(i=0;ila.length;i+)printf(%d,la.pi.num);printf(n);printf(表b升序排列后為:n);for(i=0;ilb.length;i+)printf(%d,lb.pi.num);printf(n);i=0;while(ila.length&jlb.length)if(la.pi.num=lb.pj.num)e1=la.pi;i+;elsee1=lb.pj;j+;if(e1.num!=lc
9、.plc.length-1.num)InsertList(lc,+m,e1);if(ila.length)while(ila.length)if(la.pi.num!=lc.plc.length-1.num)InsertList(lc,+m,la.pi);i+;if(jlb.length)while(jlb.length)if(lb.pj.num!=lc.plc.length-1.num)InsertList(lc,+m,lb.pj);j+;printf(按升序排列再歸并兩表為:n);for(n=0;nnext=NULL;returnOK;voidInvertedList(slist&head
10、1,slist&head2)/構(gòu)造新表逆置單鏈表函數(shù)list*p,*q;p=head1-next;q=p-next;if(p=NULL)printf(鏈表為空無法實現(xiàn)逆置操作n);elsewhile(q!=NULL)p-next=head2-next;head2-next=p;p=q;q=q-next;p-next=head2-next;head2-next=p;printf(逆置成功!?n);voidInsertList(slist&head,node&e)/此處應(yīng)為指針的引用/而不應(yīng)該是list*headlist*p,*q;p=(list*)malloc(sizeof(list);q=he
11、ad;while(q-next!=NULL)q=q-next;p-next=q-next;q-next=p;p-data=e;voidInvertedList(sqlist&head)/不構(gòu)造新表逆置單鏈表函數(shù)list*p,*q,*k;p=head-next;q=p-next;k=q-next;p-next=NULL;while(k!=NULL)q-next=p;p=q;q=k;k=k-next;q-next=p;head-next=q;/交換鏈表中第i個和第j個結(jié)點,函數(shù)實現(xiàn)如下/intSwapListNode(sqlist&head,inti,intj)intm,n,m1,n1,sum=0
12、;list*p,*q,*k,*c,*d,*ba;ba=head-next;while(ba!=NULL)sum+;ba=ba-next;if(i=j|isum|jsum|i1|j1)printf(所要交換的兩個結(jié)點有誤!n);returnERROR;if(ij)m=i;n=j;elsem=j;n=i;-可編輯修改-p=head;q=head;for(m1=1;m1next;for(n1=1;n1next;if(p-next=q)/如果結(jié)點相鄰k=head;while(k-next!=p)k=k-next;/相鄰兩結(jié)點的交換p-next=q-next;q-next=p;k-next=q;)els
13、e/如果結(jié)點不相鄰k=head;c=head;while(k-next!=p)k=k-next;while(c-next!=q)c=c-next;d=p-next;/不相鄰兩結(jié)點之間的交換p-next=q-next;c-next=p;k-next=q;q-next=d;returnOK;/將鏈表中結(jié)點按結(jié)點中某一項大小升序排列,函數(shù)實現(xiàn)如下/intAscendingList(sqlist&head)intm,n,sum=0,i,j;list*p,*q,*k;k=head-next;while(k!=NULL)sum+;k=k-next;for(i=1;isum;i+)for(j=i+1;jne
14、xt;m=1;while(m!=i)m+;p=p-next;q=head-next;n=1;while(n!=j)n+;q=q-next;if(p-data.expq-data.exp)/如果按exp降序排列,則應(yīng)將改為next;q=head2-next;while(p!=NULL&q!=NULL)if(p-data.expdata.exp)InsertList(head3,p-data);p=p-next;elseif(p-data.expq-data.exp)InsertList(head3,q-data);q=q-next;elseif(p-data.exp=q-data.exp)e.c
15、oefficient=p-data.coefficient+q-data.coefficient;e.exp=p-data.exp;/e.exp=q-data.exp;InsertList(head3,e);p=p-next;q=q-next;if(p!=NULL)while(p!=NULL)InsertList(head3,p-data);p=p-next;/如果p中有剩余,則直接將p中剩余元素插入head3中if(q!=NULL)while(q!=NULL)InsertList(head3,q-data);q=q-next;/如果q中有剩余,則直接將q中的剩余元素插入head3中retur
16、n0;-可編輯修改-/利用棧結(jié)構(gòu)實現(xiàn)數(shù)制之間的轉(zhuǎn)換書3.2.1/typedefstructintnum;node;typedefstructnode*base;node*top;intstacksize;stack;/順序棧結(jié)構(gòu)定義intCreatStack(stack&stackll)stackll.base=(node*)malloc(INITSTACKSIZE*sizeof(node);if(!stackll.base)exit(OVERFLOW);stackll.top=stackll.base;stackll.stacksize=INITSTACKSIZE;returnOK;void
17、push(stack&s,nodee)/進棧操作if(s.top-s.base=s.stacksize)s.base=(node*)realloc(s.base,(s.stacksize+INCRESTACKMENT)*sizeof(node);if(!s.base)exit(OVERFLOW);s.top=s.base+s.stacksize;/可以不寫此語句;s.stacksize+=INCRESTACKMENT;*(s.top+)=e;/*s.top+=e;voidpop(stack&s,node&e)/出棧操作if(s.top=s.base|s.base=NULL)printf(信息有
18、誤!n);elsee=*-s.top;/取棧頂元素函數(shù)/voidgettop(stack&s,node&e)if(s.base=s.top)printf(棧為空,無法取得棧頂元素!n);elsee=*(s.top-1);/棧的應(yīng)用:括號匹配的檢驗書3.2.2/省略了大部分上述已有代碼/intzypd(charc)/判斷是否為左括號字符if(c=|c=|c=()returnOK;elsereturnERROR;intmain(void)stacks;nodee1,e2,e3;charstINITSTACKSIZE;inti=0,j;CreatStack(s);printf(請輸入括號字符,以#做
19、結(jié)束符:);scanf(%c,&sti);while(sti!=#)i+;scanf(%c,&sti);if(!zypd(st0)printf(輸入字符不合法!n);elsefor(j=0;jnext=NULL;s.top=s.base;voidInsertStack(stack&s,nodee)node*p;p=(node*)malloc(sizeof(node);if(!p)exit(1);else*p=e;p-next=s.top;s.top=p;voidDeleteStack(stack&s,node&e)node*p;if(s.top=s.base)printf(棧為空!n);els
20、ep=s.top;s.top=s.top-next;e=*p;free(p);隊列/鏈隊列的描述及操作/typedefstructNodeinta;structNode*next;Qnode,*QueuePtr;typedefstructQueuePtrfront;QueuePtrrear;LinkQueue;voidInitQueue(LinkQueue&Q)Q.front=(Qnode*)malloc(sizeof(Qnode);if(!Q.front)exit(1);Q.rear=Q.front;Q.front-next=NULL;voidInsertQueue(LinkQueue&Q,
21、Qnodee)-可編輯修改-QueuePtrp;p=(Qnode*)malloc(sizeof(Qnode);if(!p)exit(1);*p=e;p-next=NULL;Q.rear-next=p;Q.rear=p;voidDeleteQueue(LinkQueue&Q,Qnode&e)Qnode*p;if(Q.front=Q.rear)printf(隊列為空!n);elsep=Q.front-next;e=*p;Q.front-next=p-next;if(p=Q.rear)Q.rear=Q.front;free(p);/循環(huán)隊列/typedefstructnodeintdata;stru
22、ctnode*next;node;typedefstructqueuenode*base;intfront;intrear;Queue;inttag;voidInitQueue(Queue&Q)Q.base=(node*)malloc(MAX*sizeof(node);if(!Q.base)exit(1);Q.front=Q.rear=0;tag=0;voidInsertQueue(Queue&Q,nodee)if(tag=1&Q.front=Q.rear)printf(循環(huán)隊列已滿!n);elseQ.baseQ.rear=e;Q.rear=(Q.rear+1)%MAX;if(Q.rear=Q
23、.front)tag=1;voidDeleteQueue(Queue&Q,node&e)if(tag=0&Q.front=Q.rear)printf(隊列為空!n);elsee=Q.baseQ.front;Q.front=(Q.front+1)%MAX;if(Q.front=Q.rear)tag=0;intEmptyQueue(Queue&Q)if(Q.front=Q.rear&tag=0)return1;elsereturn0;串/串:堆分配存儲形式的一些操作/typedefstructstringchar*ch;intlength;sstring;voidCreatString(sstri
24、ng&T)T.ch=(char*)malloc(sizeof(char);T.length=0;-可編輯修改-voidStringAssign(sstring&T,char*s)/將用s的值賦值給用Tif(T.ch)free(T.ch);T.ch=(char*)malloc(strlen(s)*sizeof(char);/或者T.ch=(char*)malloc(sizeof(char);/動態(tài)開辟空間不同于靜態(tài)內(nèi)存開辟之處if(!T.ch)printf(ERROR);exit(1);strcpy(T.ch,s);T.length=strlen(s);voidClearString(sstri
25、ng&T)if(T.ch)free(T.ch);T.length=0;voidConcatString(sstring&T,sstrings1,sstrings2)/串連接if(T.ch)free(T.ch);T.ch=(char*)malloc(strlen(s1.ch)+strlen(s2.ch)*sizeof(char);if(!T.ch)printf(ERRORn);exit(1);strcpy(T.ch,s1.ch);strcat(T.ch,s2.ch);T.length=strlen(s1.ch)+strlen(s2.ch);voidSubString(sstring&sub,ss
26、trings,intpos,intlen)/取子用操作,取用s中位置從pos至len處的子用于sub中inti,j=0;if(sub.ch)free(sub.ch);sub.ch=(char*)malloc(len-pos+1+1)*sizeof(char);if(!sub.ch)-可編輯修改-printf(ERRORn);exit(1);for(i=pos-1;is1.length)printf(ERRORn);return0;elsefor(i=0;is1.length;i+)k=1;for(j=0;js2.length;j+)if(s2.chj!=s1.chi+j)k=0;break;i
27、f(k)count+;returncount;voidDeletestring(sstring&s,intpos,intlen)/刪除s用中位置從pos到len處的元素inti,j,k;if(s.length=0)printf(ERRORn);elsefor(i=pos-1,j=len;js.length;i+,j+)s.chi=s.chj;s.chi=0;s.length-=(len-pos)+1;voidDeleteSub(sstring&s1,sstrings2)/刪除母串s1中的子串s2inti,j,k,tag=0;for(i=0;is1.length;i+)k=1;if(tag)i-
28、;for(j=0;js2.length;j+)if(s2.chj!=s1.chi+j)k=0;break;if(k)Deletestring(s1,i+1,i+s2.length);tag=1;KMP算法intindex_kmp(stringT,stringS,intpos)inti=pos,j=1;while(i=S.length&jT.length)returni-T.length;elsereturn0;voidget_next(stringT)inti=1,j=0;next1=0;while(i=T.length)if(j-1=0|T.chi=T.chj)i+;j+;if(T.chi!
29、=T.chj)nexti=j;elsenexti=nextj;elsej=nextj;數(shù)組矩陣轉(zhuǎn)置的經(jīng)典算法for(i=0;irow;i+)for(j=0;jcol;j+)bji=aij;時間復(fù)雜度為O(row*col),每個元素都要存儲,相對于稀疏矩陣來說比較浪費存儲空間。矩陣轉(zhuǎn)置-利用三元組實現(xiàn)#defineMAX12500/假設(shè)一個稀疏矩陣最多有12500個非零元typedefstructinti,j;/i,j用于存儲矩陣中元素的行、列下標intnum;/num為矩陣中非零元的值Triple;/定義一個三元組typedefstructTripledataMAX+1;intmu,nu,tu
30、;/mu,nu非別表示一個稀疏矩陣的行數(shù)和列數(shù)/tu表示該稀疏矩陣的非零元個數(shù)TSMatrix;/矩陣轉(zhuǎn)置,核心算法如下:t.mu=m.nu;t.nu=m.mu;t.tu=m.tu;for(i=0;im.nu;i+)for(j=0;jm.tu;j+)/按列遍歷三元組if(m.dataj.j=i)/按列升序存入數(shù)組t.datap.i=m.dataj.j;t.datap.j=m.dataj.i;t.datap.num=m.dataj.num;p+;該算法時間復(fù)雜度為O(nu*tu),即與該矩陣的列數(shù)和非零元個數(shù)有關(guān),當tu=mu*nu時,時間復(fù)雜度為O(nu2*tu),此時的時間復(fù)雜度比一般算法的
31、時間復(fù)雜度還要大,因此此算法適用于tumu*nu的情況,此算法相比一般算法節(jié)省了存儲空間??焖俎D(zhuǎn)置算法t.tu=m.tu;t.mu=m.nu;t.nu=m.mu;for(i=1;i=m.nu;i+)numi=0;/先使每列上元素的個數(shù)為0for(i=0;im.tu;i+)numm.datai.j+;/遍歷三元組求得每列上元素的個數(shù)for(i=2;i=m.nu;i+)cpoti=cpoti-1+numi-1;/求得每列上第一個元素在轉(zhuǎn)置矩陣三元組中的存儲序號for(i=0;im.tu;i+)j=m.datai.j;q=cpotj;t.dataq.i=m.datai.j;t.dataq.j=m.d
32、atai.i;t.dataq.num=m.datai.num;cpotj+;/當該列上一個元素存儲完時序號加1該算法時間復(fù)雜度O(nu+tu),這種算法稱為快速轉(zhuǎn)置算法。利用行邏輯連接順序表實現(xiàn)矩陣相乘typedefstructinti,j;intnum;Triple;typedefstructTripledataMAXSIZE;intrposMAXRC;/存放每行中首個非零元的位置。intmu,nu,tu;RLSMatrix;/行邏輯連接順序表的定義intMultMatrix(RLSMatrixm,RLSMatrixn,RLSMatrix&q)/矩陣相乘函數(shù)、核心算法intarow,ctem
33、pMAXRC,i,tp,p,brow,t,ql,ccol;if(m.nu!=n.mu)returnERROR;q.mu=m.mu;q.nu=n.nu;q.tu=0;if(m.tu*n.tu!=0)for(arow=1;arow=m.mu;arow+)/按m矩陣中每行進行處理for(i=1;i=n.nu;i+)ctempi=0;/每行處理開始,使得ctemp置零q.rposarow=q.tu+1;/求矩陣q中rpos的值if(arowm.mu)tp=m.rposarow+1;elsetp=m.tu+1;/求得arow下一行第一個非零所在的位置for(p=m.rposarow;ptp;p+)/依次
34、處理矩陣m中每行上所有的非零元brow=m.datap.j;if(brown.mu)t=n.rposbrow+1;elset=n.tu+1;for(ql=n.rposbrow;qlt;ql+)ccol=n.dataql.j;ctempccol+=m.datap.num*n.dataql.num;for(ccol=1;ccolMAXSIZE)returnERROR;q.dataq.tu.i=arow;q.dataq.tu.j=ccol;q.dataq.tu.num=ctempccol;-可編輯修改-returnOK;voidgetrpos(RLSMatrix&m)inti,numMAXRC,j;
35、for(i=1;i=m.mu;i+)numi=0;/先使每行上元素的個數(shù)為0for(i=1;i=m.tu;i+)numm.datai.i+;/遍歷三元組求得每行上元素的個數(shù)for(j=1;j=m.mu;j+)if(numj!=0)break;m.rposj=1;/j代表第一個非零元數(shù)不為零的行的下標for(i=j+1;ii=t-i;p-j=t-j;p-e=t-e;rpre=&q.rheadp-i;cpre=&q.cheadp-j;for(i=1;iright=NULL|rpre-right-jp-j)if(rpre-right-j=p-j)tag=0;break;rpre=rpre-right
36、;/找到指針rpre的位置while(1)if(cpre-dowm=NULL|cpre-dowm-ii)break;cpre=cpre-dowm;/找到cpre的位置if(tag)/判斷該要出入的結(jié)點所在的行是否已經(jīng)存在元素p-right=rpre-right;rpre-right=p;p-dowm=cpre-dowm;cpre-dowm=p;elseif(rpre-right-e+p-e=0)if(rpre-right!=NULL)rpre-right=rpre-right-right;if(cpre-dowm!=NULL)cpre-dowm=cpre-dowm-dowm;if(rpre-r
37、ight-e+p-e!=0)rpre-right-e+=p-e;/用十字鏈表存儲矩陣voidCreatMatrix(ListMatrix&m)intm1,n,t,i;OLNode*p,*rpre,*cpre;printf(請輸入矩陣的行數(shù)、列數(shù)、非零元個數(shù):);scanf(%d%d%d,&m1,&n,&t);m.mu=m1;m.nu=n;m.tu=t;m.rhead=(OLNode*)malloc(m1+1)*sizeof(OLNode);m.chead=(OLNode*)malloc(n+1)*sizeof(OLNode);for(i=1;im1+1;i+)m.rheadi.right=NU
38、LL;for(i=1;in+1;i+)/初始化指針的值m.cheadi.dowm=NULL;printf(請輸入這%d個非零元:n,m.tu);for(i=0;ii,&p-j,&p-e);InsertMatrix(p,m);廣義表2013/09/01廣義表的構(gòu)造及遞歸遍歷/廣義表的定義用到串的一些操作,上述已有串的定義在此不再敘述。typedefenumATOM,LISTElemTag;typedefstructGLNodeElemTagtag;unioncharatom;structstructGLNode*hp,*tp;ptr;/若atom占用內(nèi)存則表明為原子結(jié)點,否則ptr占用內(nèi)存為表結(jié)
39、點*Glist;/廣義表結(jié)點結(jié)構(gòu)的定義voidSubString(Sstring&A,Sstring&B,inti,intn)/取子串操作/將B串中從第i個字符起長度為n的字符串復(fù)制到A中intj=0,m=0;for(j=i;ji+n;j+)A.chm+=B.chj;A.chm=0;A.length=m;voidSeverGlist(Sstring&str,Sstring&hstr)/將非空串(廣義表形式的串)str中第一個逗號之前的/字符置給hstr,剩余的字符(除去該逗號)留在str中SstringCh;inti=0,k=0,n=str.length;InitString(Ch);doi+
40、;ClearString(Ch);InitString(Ch);SubString(Ch,str,i-1,1);/每次取一個字符至Ch串中if(Ch.ch0=()k+;elseif(Ch.ch0=)k-;while(in&(Ch.ch0!=,|k!=0);if(in)SubString(hstr,str,0,i-1);SubString(str,str,i,n-i);elsestrcpy(hstr.ch,str.ch);hstr.length=str.length;ClearString(str);voidCreatGlist(Glist&L,Sstring&S)/廣義表的構(gòu)造/采用頭尾鏈表存儲結(jié)構(gòu),由廣義表書寫形式串S定義廣義表Glistp,q;Sstringsub,hsub;InitString(sub);InitString(hsub);if(strcmp(S.ch,()=0)L=NULL;elseif(!(L=(Glist)malloc(sizeof(GLNode)exit(1);if(S.length=1)-可編輯修改-
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微生物的生長繁殖及其控制筆記
- 股票市場投資分析現(xiàn)代金融投資統(tǒng)計分析李臘生課件
- 物料提升機基礎(chǔ)知識專題培訓(xùn)課件
- 中考生物總復(fù)習(xí) 第2講 了解生物圈課件 (12)
- 中考生物 第1部分 第二單元 第一章 細胞是生命活動的基本單位復(fù)習(xí)課件 (8)
- 一級數(shù)學(xué)下冊 阿福的新衣教學(xué)建議課件 青島五制
- 一級數(shù)學(xué)下冊 第一單元 加與減(一)第1課時 買鉛筆習(xí)題課件 北師大
- 財務(wù)管理工具概述
- 財務(wù)成本管理課件
- 多種二尖瓣成形技術(shù)治療二尖瓣前葉關(guān)閉不全
- 多用電表的原理和使用說課
- 《藝術(shù)品》酒泉四中陳軍興
- 國有獨資公司例題
- 淘寶售后模板
- 環(huán)境心理學(xué)觀音山公園調(diào)研報告_2