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

正文內(nèi)容

數(shù)據(jù)結構b樹的圖書管理系統(tǒng)-在線瀏覽

2024-11-11 02:43本頁面
  

【正文】 唯一的,可以唯一的表示一本書和一個讀者。 struct Book { int isbn。 // 用字符串表示著者 (只有一個著者 ) char book_name[maxc]。 // Standing_Stocks int total_stocks。 // 定義一個書全局變量 2) 讀者 Reader struct Reader { int lcid。 // 借書日期 int return_date。 // 結構體內(nèi)部日 期變量 struct Book_Lists { 華東交通大學 08 級軟件工程( 1)班 —— 張志福 2 Book book[maxn]。 // 借書的數(shù)量 } book_list。 // 定義一個讀者全局變量 3) B樹 BTree struct Book { int isbn。 // 用字符串表示著者 (只有一個著者 ) char book_name[maxc]。 // Standing_Stocks int total_stocks。p) const { // 重載運算符 return isbn。p) const { // 重載運算符 == return == isbn。p) const { // 重載運算符 return isbn。 // 定義一個書全局變量 4. 各功能簡析: 1) 采編入庫: piled_to_stock 先查找這種新書是否存在: a) 如果存在,那么我們增加他的數(shù)量。 2) 清除庫存: cleanup_of_stock 我們只要刪除一個節(jié)點。 a) 如果現(xiàn)庫存量大于 0,那么我們借出,并且?guī)齑媪繙p少,同時改變讀者的信息。 4) 歸還 Return_BOOK 找到索引的位置,然后增加其數(shù)量,同時改變讀者 信息; 5) 顯示 PrintBTree 按層次遍歷的順序凹入顯示 B樹 總:每個功能調(diào)用一個函數(shù)實現(xiàn)。 五、 參考文獻 1. 《數(shù)據(jù)結構》(嚴蔚敏、吳偉民 )清華大學出版社 P238~246 2. 《 C 程序設計》(譚浩強)清華大學出版社 P219 第十章指針 3. 還有各位 ACM 大牛們給的支持和幫助。 const int maxc = 100。 // 因為這里的是非國際通用表示圖書號, char editor[maxc]。 // 圖書的名子 int stand_stocks。 // Total_Stocks //bool operator = (const Book amp。 //} // operator = bool operator (const Book amp。 } // operator bool operator == (const Book amp。 } // operator == bool operator (const Book amp。 } // operator } book。 // Library_Card_ID struct Date { int borrow_date。 // 還書日期 } date[maxn]。 // 所借的書目 int book_number。 // 結構體內(nèi)部書目變量 } reader[5]。 // 結點的大小 struct BTNode *parent。 // 關鍵字向量 ,0 號單元未用 struct BTNode *ptr[m+1]。 // B樹節(jié)點和 B樹類型 //4 B樹查找結果 struct Result { BTNode *pt。 // 1..m 在節(jié)點中的關鍵字序號 bool tag。 i = b。 } // Result }tmp。這里只進行順序查找,因為 // B樹的階很小。p, KeyType key) { for (int i = 1。 i++) { if (pkey[i] key) return i1。 } // Search Result SearchBTree (BTree T, KeyType key) { BTree p = T, q = NULL。 int i = 0。amp。 if (i 0 amp。 pkey[i] == key) flag = true。 p = pptr[i]。 } // SearchBTree //2 B樹插入操作 // 關鍵字插入的位置必定在最下層的非葉結點,有下列幾種情況: // 1)插入后,該結點的關鍵字個數(shù) nm,不修改指針 。 // 3)若雙親為空,則建新的根結點。 // 要插入到 pkey[i+1]我們必須對 i+1 之后的數(shù)進行后移,這也是采用 // 順序結構的弊端 ,但是由于順序表很短,所以反而更高效。p, int i, KeyType x, BTree ap) { 華東交通大學 08 級軟件工程( 1)班 —— 張志福 6 for (int k = pkeynum + 1。 k) { pkey[k] = pkey[k 1]。 } // for_k pkey[i + 1] = x。 if (ap) apparent = p。 } // insert //分裂操作 // 將結點 p 分為兩個部分 [1..s1]和 [s..m].同時更新每部分 // 這里我們要考慮兩種情況, 2. 插入到父節(jié)點 void split (BTree amp。ap) { ap = NULL。 for (int i = s + 1, k = 0。 i++) { apkey[++k] = pkey[i]。 } // for_i apptr[0] = pptr[s]。 pkeynum = s 1。 } // split //生成新根節(jié)點 // 這里要考慮兩種情況: // T 是空樹(參數(shù) q 初值為 NULL) 或者 根節(jié)點已分配為節(jié)點 *q 和 *ap // 生成含有信息( T,x, ap)的新的根節(jié)點 *T, 原 T 和 ap 為子樹指針 void NewRoot (BTree amp。q, KeyType x, BTree amp。 T = (BTNode *) malloc ( sizeof(BTNode) )。 i = m。 Tkey[1] = x。 Tparent = NULL。 Tptr[1] = ap。 if (ap != NULL) { apparent = T。 j = apkeynum。 } // for_j } // if } // NewRoot void InsertBTree (BTree amp。 bool flag = false。 while (q amp。 !flag) { insert (q, i, x, ap)。 else { int s = (m + 1) 1。 x = qkey[s]。 q = qparent。 } //else } // while if (!flag) NewRoot(T, p, x, ap)。 // 3. 被刪除關鍵字所在節(jié)點和其相鄰的兄弟節(jié)點中的關鍵字數(shù)目均等與( m+1)/ /設該節(jié)點有右兄弟,且其右兄弟節(jié)點地址有雙親節(jié)點中的指針 Ai 所指,則在刪除的關鍵字 之后,他所在節(jié)點中剩余的關鍵字和指針,加上雙親節(jié)點中的關鍵字 Ki一起 合并到 Ai 的 // 兄弟節(jié)點中去 (若沒有兄弟,
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1