freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

數(shù)據(jù)結構算法設計與實現(xiàn)指導(上)ppt-文庫吧資料

2024-10-24 15:43本頁面
  

【正文】 break。39。 break。+39。 } } 計算 a和 b,返回運算結果 SElemType Operate(SElemType a,SElemType theta,SElemType b) { SElemType c。:return TRUE。: case39。: case39。: case39。: case39。: case39。: case39。 } 判斷 c是否為運算符(運算符包括:+、-、*、/、()、#) Status In(SElemType c) { switch(c) { case39。39。 exit(ERROR)。(39。 break。:f=39。:switch(t1) { case 39。 case 39。39。 exit(ERROR)。39。 break。:f=39。:switch(t1) { case 39。 case 39。39。 exit(ERROR)。)39。(39。 break。 else f=39。) f=39。||t1==39。||t1==39。:if(t1==39。: case 39。 case 39。39。39。39。(39。39。+39。 表 運算符間的優(yōu)先關系 SElemType Precede(SElemType t1,SElemType t2) { SElemType f。 本函數(shù)不包含任何數(shù)據(jù)結構的內容,僅是在輸入表達式的過程中,按照表 的運算符的關系 (、 、 =)。其中 θ 1為棧頂元素, θ 2為輸入元素。 表 義的,也就是本函數(shù)的運行結果。 } else return ERROR。 } 取棧頂?shù)臄?shù)據(jù)元素 Status GetTop(SqStack S,SElemType *e) { if() { *e=*()。 DestroyStack(amp。 printf(%d,e)。s,amp。 } printf(The corresponding octal number is:)。s,n%8)。n)。 printf(Please input a decimal number:)。 InitStack(amp。 unsigned n。請讀者自己編寫代碼。如,當輸入 1時,結果顯示 65535。 } 十進制數(shù)轉換成八進制 本函數(shù)實現(xiàn)了無符號十進制數(shù)和八進制數(shù)間的轉換功能。 (*S).stacksize=0。 (*S).base=NULL。 else return FALSE。 return OK。 } 數(shù)據(jù)元素出棧 Status Pop(SqStack *S,SElemType *e) { if((*S).top==(*S).base) return ERROR。 } *((*S).top)++=e。 (*S).top=(*S).base+(*S).stacksize。 } 初始化一個空棧 數(shù)據(jù)元素入棧 Status Push(SqStack *S,SElemType e) { if((*S).top(*S).base=(*S).stacksize) { (*S).base=(SElemType*)realloc ((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof(SElemType))。 (*S).stacksize=STACK_INIT_SIZE。 if(!(*S).base) exit(OVERFLOW)。 }SqStack。 SElemType *top。 typedef int Status。 程序名為: 。 由于棧是一種特殊的線性結構,僅在棧頂進行插入和刪除操作,即棧具有后進先出的特點,故其操作比一般的線性表更為容易,所以在本實驗中有關棧的基本操作集的實現(xiàn)都比較簡單,沒有做過多的說明,而是在數(shù)制轉換和表達式求解的應用操作中加入了更多的編程技巧,使讀者通過本實驗不僅了解棧這種特殊結構的線性表,而且掌握利用??蓪崿F(xiàn)很多的應用,尤其是在實現(xiàn)表達式求解時用到了兩個順序棧,并且加入了運算符的優(yōu)先關系的判斷等,實現(xiàn)稍有難度。 ?利用棧實現(xiàn)一位數(shù)的加減乘除的表達式求解。 ?理解順序棧的基本操作的算法,及在 C語言環(huán)境中一些主要基本操作的實現(xiàn)。Lc)。 ListTraverse(Lc,print)。Lc,pare)。Lc)。 } ListTraverse(Lb,print)。 ListInsert_L(amp。i++) { scanf(%d,amp。 for(i=1。 InitList(amp。len_b)。 printf(Please input LinkListB length:)。La,i,inputdata)。inputdata)。i=len_a。 printf(LinkListA elements:)。 scanf(%d,amp。La)。 clrscr()。 int len_a,len_b。假設需要將線性鏈表 Lb按值非遞減順序合并到 La中,請讀者考慮應如何實現(xiàn)。La,i,inputdata)中的 i進行定位。 } 主函數(shù) ?在輸入 La和 Lb兩個線性表的數(shù)據(jù)元素時,要求按非遞減的順序輸入。hb)。ha)。 else Append(Lc,pb)。 pb=NextPos(hb)。q)。 } } else { DelFirst(amp。 InsFirst(Lc,(*Lc).tail,q)。La,ha,amp。 b=GetCurElem(pb)。amp。 pb=NextPos(hb)。 hb=GetHead(Lb)。 if(!InitList(Lc)) return ERROR。 流程圖 代碼段 開始 初始化 Lc 取 La 、 Lb 的頭結點-> ha 、 hb 取 La 、 Lb 的第一個結點-> pa 、 pb La 、 Lb 都不為空? N Y 取 La 、 Lb 當前結點的數(shù)據(jù)域-> a 、 b Y a >= b N 刪除 La 的第一個結點-> q 刪除 Lb 的第一個結點-> q 將 q 插入到 Lc 的尾部 將 q 插入到 Lc 的尾部 取 La 的第一個結點-> pa 取 Lb 的第一個結點-> pb N La 空? Y 將 La 插入到 Lc 后面 將 Lb 插入到 Lc 后面 釋放 La 、 Lb 的頭結點 結束 Status MergeList_L(LinkList La,LinkList Lb,LinkList*Lc,int(*pare) (ElemType,ElemType)) { Link ha,hb,pa,pb,q。當從 La或 Lb中每次插入一個結點到 Lc中時,將其從 La或 Lb中刪除。 ? 二是運用了 Append()函數(shù)。 ? 一是運用了 InsFirst()函數(shù)。 return OK。 (*L).tail=NULL。 FreeNode(amp。 return OK。 p=pnext。j。 int j。 } 如果兩個參數(shù)都是鏈表的話,假如為 *L和 *S,就可以這樣處理:由于線性鏈表的結構中含有尾指針,故在處理時,可將線性鏈表 *L尾指針所指向的結點的 next指向 *S的頭指針所指向的結點,再修改 *L的尾指針,使其與 *S的尾指針指向相同。 (*L).len+=i。 i++。 (*L).tailnext=s。最后更新鏈表的尾指針,使其指向當前 s所指向的結點,即最后一個結點。 } 在線性鏈表 L的后面追加指針 s所指向的一串結點 注意這個函數(shù)傳遞的參數(shù), *L是一個鏈表, s是一個結點指針。 return OK。 if(!hnext) (*L).tail=h。 Status DelFirst(LinkList *L,Link h,Link *q) { *q=hnext。 } 刪除頭結點后的第一個結點。 InsFirst(L,h,s)。 if(!MakeNode(amp。 if(!LocatePos(*L,i1,amp。處理時,先找到插入點 i的前一個位置,把它做為頭結點,調用( InsFirst(L,h,s))函數(shù),此時頭結點位置參數(shù) h傳遞的就是指向第 i1個結點的指針。 } 在指定位置插入一個結點 ? 利用基本操作集實現(xiàn)在指定位置插入一個結點。 (*L).len++。 hnext=s。如圖。 return OK。j=i。 else { *p=。 } 查找第 i個元素 Status LocatePos(LinkList L,int i,Link *p) { int j。 else return TRUE。 } 取當前結點 p的后繼結點 Position NextPos(Link p) { return pnext。 } else return ERROR。 (*L).len = 0。 if(p) { pnext=NULL。 ? 圖 空的帶頭結點的線性鏈表 ( * L ).h e a d P ∧ ( * L ).t a il Status InitList(LinkList *L) { Link p。 ? } 初始化生成一個空的帶頭結點的線性鏈表 ? 本實驗中所用的線性鏈表均為帶頭結點的線性鏈表,其頭結點的結構同一般結點,但其數(shù)據(jù)域沒有內容,當線性鏈表為空時,其頭結點的指針域為空。 } 釋放一個結點 ? void FreeNode(Link *p) ? { ? free(*p)。 (*p)data = e。
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1