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

正文內(nèi)容

華中科技大學數(shù)據(jù)結構實驗報告(參考版)

2025-05-26 18:12本頁面
  

【正文】 }//若LR為1,插。 }//若LR為0,插入c為T中p所指結點的左子樹 else { crchild = prchild。 } if (LR == 0) { crchild = plchild。 } if (crchild != NULL) { printf(待插入二叉樹的右子樹不為空!\n)。}status InsertChild(BiTree T, BiTree p, int LR, BiTree c) { if (!T) { printf(二叉樹不存在!\n)。 if (p != NULL) return p。 if (p != NULL) return p。 if (T) { if (Tdata == e) return Trchild。 } return NULL。 p = LeftChild(Trchild, e)。 p = LeftChild(Tlchild, e)。}BiTNode* LeftChild(BiTree T, char e) { BiTree p。 //遞歸調(diào)用對右子樹進行操作 if (T1 != NULL) return T1。 //遞歸調(diào)用對左子樹進行操作 if (T1 != NULL) return T1。Tlchilddata == e) return Trchild。 if (T) { if (Tlchild!=NULLamp。 } return NULL。 T1 = LeftSibling(Trchild, e)。 T1 = LeftSibling(Tlchild, e)。amp。}BiTNode* LeftSibling(BiTree T, char e) { //若e無左孩子,返回NULL BiTree T1=NULL。 if (T1 != NULL) return T1。 if (T1 != NULL) return T1。 Trchilddata == e)) return T。Tlchilddata == e) ||(Trchild!=NULLamp。 if (T) { if ((Tlchild!=NULLamp。 } } return ERROR。 } else { if (prchild != NULL) st[top++] = prchild。 //先序遍歷,彈出棧頂元素 if (pdata == e) { pindex = Value。 //置空棧 st[top++] = T。 //若二叉樹為空,返回Error BiTNode *st[MAXLENG], *p。 } } return ERROR。 else { if(prchild!=NULL) st[top++] = prchild。 while (top) { p = st[top]。 int top = 0。}//獲得結點,返回結點的值int Value(BiTree T, char e) { if (!T) return ERROR。 }}//后序非遞歸遍歷也可以用雙堆棧來實現(xiàn)char Root(BiTree T) {//返回T的根 if (!T) return NULL。 flag = 0。//彈出已訪問的根結點 pre = T。 //訪問左子樹根結點 if (Trchild == pre) { if (!visit(Tdata)) return ERROR。amp。 flag = 1。 T = Tlchild。 if (T) { do { while (T) { if (top == MAXLENG) exit(OVERFLOW)。}//用一個堆棧并設置標志來實現(xiàn)后續(xù)非遞歸遍歷status Post_order_b(BiTree T, status(*visit)(TElemType e)) { BiTNode *st[MAXLENG], *pre。 } } while (top || T)。 //彈出根指針 if(!visit(Tdata)) return ERROR。 //根指針進棧 T = Tlchild。 //置空棧,top為棧頂元素上一個單元的地址 do { while (T) //根指針T表示的為非空二叉樹 { if (top == MAXLENG) exit(OVERFLOW)。 }}//先序遍歷的另一種算法思想是直接//在第一次訪問根結點時對根結點進行操作status Mid_order_b(BiTree T, status(*visit)(TElemType e)) { BiTree st[MAXLENG]。 //將右子樹的根結點存入棧中 if (plchild != NULL) st[top++] = plchild。 //彈出棧頂指針 if(!visit(pdata)) return ERROR。 //置空棧 if (T) { st[top++] = T。}//遍歷二叉樹的非遞歸算法,建立遞歸工作棧status Pre_order_b(BiTree T, status(*visit)(TElemType e)) { BiTNode *st[MAXSIZE], *p。 return ERROR。 } else return OK。}status Mid_order(BiTree T, status(*visit)(TElemType e)) { if (T) { if (Mid_order(Tlchild, visit)) if (visit(Tdata)) if (Mid_order(Trchild, visit)) return OK。 return ERROR。 else return 1+MAX(BiTreeDepth(Tlchild), BiTreeDepth(Trchild))。amp。}//若T為空二叉樹返回TRUEstatus BiTreeDepth(BiTree T) { if (!T) return 0。}status BiTreeEmpty(BiTree T) { if (T) return FALSE。 Trchild = NULL。}status ClearBiTree(BiTree amp。 CreateBiTNode(Trchild)。 getchar()。 scanf(%d, amp。 Tdata = ch。) T = NULL。 if (ch == 39。ch)。 printf(請輸入關鍵字:\n)。39。}//采用遞歸的方式銷毀二叉樹,思想和前序遍歷二叉樹是一致的//若采取非遞歸的方式銷毀二叉樹和層序遍歷二叉樹的思想一致status CreateBiTNode(BiTree amp。 T = NULL。 if (Trchild) DestroyBiTree(Trchild)。}status DestroyBiTree(BiTree amp。T) { //將二叉樹T置空 T = NULL。 return OK。 else return b。 //尾指針,若隊列不空,指向隊列尾元素的下一個位置}SqQueue。 int front。//typedef是將結構類型定義struct BiTNode取別名為BiTNodetypedef BiTree QElemType。//左右孩子指針 int index。typedef struct BiTNode { TElemType data。}//end of main() 附錄B 基于二叉鏈表二叉樹實現(xiàn)的源程序黑體小2加粗居中,另起頁include include include define TRUE 1define FALSE 0define OK 1define ERROR 0define OVERFLOW 2define MAXLENG 10define MAXSIZE 2define QMAXSIZE 5typedef int status。 }//end of switch system(cls)。 break。 getchar()。 case 14: if (DataLoading(L[t]) == FALSE) printf(文件加載到當前線性表失?。n)。 getchar()。 else printf(文件保存失?。n)。 scanf(%s, filename)。 case 13: char filename[30]。 getchar()。 case 12: if (!ListTrabverse(L[t])) printf(線性表是空表!\n)。 getchar()。 else printf(刪除的元素為%d,表的長度是%d!\n, e, L[t].length)。 getchar()。 scanf(%d, amp。 break。 getchar()。 if (ListInsert(L[t], i, e) == ERROR) printf(插入失??!\n)。i, amp。 case 10: printf(請輸入插入新的數(shù)據(jù)元素位置以及數(shù)據(jù)元素值!\n)。 getchar()。 else printf(數(shù)據(jù)元素%d的后繼數(shù)據(jù)元素為%d!\n, cur, next_e)。 getchar()。 scanf(%d, amp。 break。 getchar()。 if (PriorElem(L[t], cur, pre_e) == FALSE) printf(操作失?。n)。cur)。 case 8: printf(請輸入數(shù)據(jù)元素!\n)。 getchar()。 else printf(數(shù)據(jù)元素為線性表中第%d個元素!\n, i)。 i = LocateElem(L[t], e)。e)。 case 7: printf(請輸入需定位的數(shù)據(jù)元素的值!\n)。 getchar()。 else printf(L中線性表中第%d個數(shù)據(jù)元素的值為%d!\n, i, e)。 getchar()。 scanf(%d, amp。 break。 getchar()。 case 5: //printf(\nListLength功能待實現(xiàn)!\n)。 getchar()。 else printf(線性表不是空表!\n)。 case 4: //printf(\nListEmpty功能待實現(xiàn)!\n)。 getchar()。 else printf(線性表清空失敗!\n)。 case 3: //printf(\nClearList功能待實現(xiàn)!\n)。 getchar()。 else printf(線性表刪除失敗!\n)。 case 2: //printf(\nDestroyList功能待實現(xiàn)!\n)。 getchar()。 else printf(線性表創(chuàng)建失??!\n)。op)。 printf( 請選擇你的操作[0~12]:\n)。 printf( 0. Exit\n)。 printf( 6. GetElem 13. SaveData\n)。 printf( 4. ListEmpty 11. ListDelete\n)。 printf( 2. DestroyList 9. NextElem\n)。 printf(\n)。 printf(\n\n)。 int op = 1。 int next_e。 int i。 system(cls)。t)。 while (t) { printf(請輸入對哪一個線性表進行操作199,輸入0退出!\n)。}void main(void) { SqList L[100]。 fclose(stream)。[], sizeof(int), 1, stream)) { ++。 return FALSE。 scanf(%s, filename)。 char filename[30]。L) { FILE *stream。 return OK。[i], sizeof(ElemType), 1, fp))!=1)
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1