原创 AVL樹的實現

AVL樹:  AVL樹又稱爲高度平衡的二叉搜索樹,是1962年有俄羅斯的數學家G.M.Adel'son-Vel'skii和E.M.Landis提出來的。它能保持二叉樹的高度 平衡,儘量降低二叉樹的高度,減少樹的平均搜索長度。 性質:1.

原创 C項目之猜拳遊戲

一個練手的小項目,用1、2、3分別代表石頭、剪刀、布,電腦隨機出數,用取模的方法得到1、2、3,與玩家所出數字進行比較。 #include <stdio.h> #include <stdlib.h> #include <string.h>

原创 二叉樹相關筆試題(二)

1.二叉樹中和爲某一值的路徑 題目:輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和爲輸入整樹的所有路徑。從樹的根節點開始往下直到葉節點所經的結點形成一條路徑。 分析:由於路徑是從根節點出發的,所以選擇前序遍歷,當訪問到一個結點時,把該

原创 紅黑樹的實現

紅黑樹:紅黑樹是一棵二叉搜索樹,它在每個節點上增加了一個存儲位來表示節點的顏色,可以是Red或Black。通過對任何一條從根到葉子簡單 路徑上的顏色來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似於平衡。 性質:1. 每個節點,不

原创 二叉樹相關筆試題(一)

1.根據二叉樹的前序遍歷和中序遍歷的結果重建二叉樹 分析:二叉樹的前序遍歷順序是根->左->右,中序遍歷順序是左->根->右,由此可以看出在前序遍歷中的第一個數字爲二叉樹的根節點,接着掃描中序遍歷的結果就可以得到根結點的位置,在根節點左邊

原创 C++項目之文件的壓縮及解壓縮

項目描述:實現文件的壓縮機解壓縮。 開發平臺:VS2013 開發技術:堆,Huaffman樹,文件輸入輸出函數 項目特點:1. 統計文件中字符出現的次數,利用數據結構堆建造Huffman樹,出現次數多的編碼短,出現次數少的編碼長。

原创 shelve模塊

shelve: 是一種簡單的數據存儲方案,他有一個有趣的函數就是open(),這個函數接收一個參數就是文件名,會返回一個shelf對象,你可以用他來存儲內容,可以簡單的把它當作一個字典,當你存儲完畢的時候,調用它的close方法來關閉。

原创 棧與隊列相關筆試題

1.用兩個棧實現隊列 分析:隊列的特點是“先進先出”,而棧的特點是“後進先出”,入隊列時讓所有的元素進到stack1中,出隊列時先判斷stack2是否爲空,不爲空直接pop即可,若爲空,將stack1中所有的元素“倒入”stack2中,這

原创 圖的存儲

圖 : 是一種線性結構,由頂點集合(vertex)及頂點間的關係集合組成的一種數據結構。 圖的存儲: 臨接矩陣:將所有的頂點的信息組織成一個頂點表,然後利用矩陣來表示各頂點之間的臨接關係,稱爲臨接矩陣。 鄰接表:使用數組存儲頂點集合,使用

原创 八皇后問題

題目:有一個棋盤和8個要放到上面的皇后。唯一的要求是皇后之間不能構成威脅。也就是說,必須把它們放置成每個皇后都不能吃掉其他皇后的狀態, 怎樣才能做到?皇后要如何放置? 分析:這是一個典型的回溯問題,首先嚐試放置第一個皇后(在第1行),然後

原创 替換空格

題目:請實現一個函數,把字符串中的每個空格替換成"%20"。例如輸入"We are happy."則輸出"We%20are%20happy."。 分析: 方法一:創建新的字符串並分配足夠多的內存,在新的字符串上進行替換。 方法二:從頭到

原创 二叉樹相關筆試題(三)

1.按之字形順序打印二叉樹 題目:請實現一個函數,按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二行按照從右到左的順序打印,第三行再按照從左到右的順序打印,以此類推。 分析:可以用兩個棧,在打印某層結點時,把下一層的子

原创 鏈表相關筆試題(二)

1.複雜鏈表的複製 題目:請實現函數,複製一個複雜鏈表。在複雜鏈表中,每個結點除了有一個next指針指向下一個結點外,還有一個pSibling指向鏈表中的任意結點或者NULL。 方法一:先複製原始鏈表上的每一個結點,並用next鏈接起來,

原创 Python項目之即時標記

這個項目是《Python基礎教程》後面的項目之一。當從一個不想寫HTML代碼的人那裏得到一個文本文件,希望把它轉成HTML的格式來當作一個網頁來使用。人工添加標籤是繁瑣的,因此想寫一個程序來自動完成。這類問題稱之爲即時標記。 主要是應用P

原创 find命令詳解

Linux下的find命令的查詢功能十分強大,下面詳細介紹find的大多數用法: 工作方式:沿着文件層次結構向下遍歷,匹配符合條件的文件,並執行相應的操作。 1.根據文件時間搜索 atime(access time,訪問時間):即上次訪問