原创 c語言實現數據結構--棧

棧是一種特殊的線性表,只能在一端進行插入刪除操作,具有先進後出的特點。 進行插入刪除操作的一端稱爲棧頂,另一端稱爲棧底! 接下來就用C語言來實現一下棧的基本操作: 代碼實現: /* stack.h文件,包含了棧定義和操作函數的聲明

原创 LeetCode:最小棧的實現

設計一個支持 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。 push(x) – 將元素 x 推入棧中。 pop() – 刪除棧頂的元素。 top() – 獲取棧頂元素。 getMin() – 檢索棧中的最小

原创 Linux文件命令-----mkdir touch創建命令

理論篇 1.mkdir命令用來創建一個目錄(文件夾) 用法:mkdir+filename [filename2] ……[]內容表示可選 也可用來創建多個文件夾,創建的文件名之間用空格隔開。 mkdir命令後加**-p**也可以用來

原创 c語言實現數據結構--鏈表

鏈表存儲結構:每個節點包含兩個數據域,一個用來存放數據,另一個數據域用來保存下一個節點的地址(指針 )。這樣就將一些物理上不連續的內存組成鏈式存儲結構。也稱單鏈表。 代碼實現: 初始化鏈表 void ListInit(LinkL

原创 鏈表常見算法題二:刪除定值節點,刪除重複元素的所有節點、反轉鏈表

LeetCode題目描述:移除鏈表元素 刪除鏈表中等於給定值 val 的所有節點。 示例: 輸入: 1->2->6->3->4->5->6, val = 6 輸出: 1->2->3->4->5 解題思路:首先保證鏈表不爲空(代碼3

原创 求數組最大子序和問題--動態規劃和分治思想實現

求給定數組的最大子序和 題目描述: 給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續

原创 c++內存管理new和delete運算符

我們先了解計算機中的內存在使用中被分爲下面幾部分: 內存佈局 棧:也叫堆棧,系統自動分配的空間,只要不特殊聲明,系統自動在棧上給變量和函數分配內存。棧是自頂向下增長的 堆:可使用動態內存分配的方式申請堆空間,當數據量較大時,棧空

原创 8086/8088CPU內部控制寄存器

控制存器有IP和FLAGS FLAGS稱爲標誌寄存器或程序狀態寄存器(PSW),雖然有16位,但是隻使用其中9位(標誌寄存器中的空位有什麼作用嗎),其中包括6個狀態標誌位和3個控制標誌 6個狀態標記位 狀態標記符記錄了算術邏輯運算

原创 鏈表常見算法題一:實現兩個鏈表的並集、合併兩個有序鏈表

題目描述:求兩個鏈表入隊並集 將兩個有序鏈表合併爲一個有序鏈表,合併的鏈表無重複元素,其中元素爲原兩個鏈表的並集 示例: 輸入:1->2->4, 1->3->4 輸出:1->2->3->4 思路分析:對list2遍歷,並同時對每個

原创 鏈表常見算法題四:鏈表相交及成環問題 返回兩個鏈表相交節點 判斷鏈表是否成環 返回鏈表的入環節點

題目描述:編寫一個程序,找到兩個單鏈表相交的起始節點。 如下面的兩個鏈表: 在節點 c1 開始相交。 示例 1: 輸入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1

原创 二叉樹的層序及非遞歸版前中後序遍歷

二叉樹的前中後序可以採用遞歸方式實現,但是當樹的層數較大時,遞歸效率就會降低,因此可以試着採用非遞歸方式進行樹的前中後序遍歷。 但樹的遍歷涉及到左右孩子,它不像鏈表那樣只有一個前驅後繼,因此我們需要藉助一些簡單的數據結構來幫助我們

原创 鏈表常見算法題三:返回中間節點(快慢指針) 返回到處第k個節點

LeetCode題目描述: 返回中間節點 給定一個帶有頭結點 head 的非空單鏈表,返回鏈表的中間結點。 如果有兩個中間結點,則返回第二個中間結點。 示例 1: 輸入:[1,2,3,4,5] 輸出:此列表中的結點 3 (序列化形

原创 8086CPU的幾種數據尋址方式

1.立即數尋址、寄存器尋址 立即數尋址就是立即數存在於指令中,與指令一同存儲在代碼區。 MOV AX,1234H MOV [2100H],1234H 寄存器尋址是操作數在寄存器中,直接對寄存器進行讀取,不用通過訪問總線,是效率最高的數據

原创 操作系統避免死鎖——銀行家算法實現

銀行家算法是針對操作系統資源分配中可能導致的死鎖問題,主要是通過對資源請求滿足之後的狀態檢測,如果滿足請求之後系統狀態安全,則說明不會產生死鎖,可以滿足申請;如果滿足之後的狀態不安全,則有可能會形成死鎖,故而不能滿足請求。從而達到避免死鎖

原创 8086CPU指令系統--彙編語言邏輯運算和移位操作指令

文章目錄一、邏輯運算指令1、邏輯‘與’指令 AND2、邏輯‘或’指令 OR3、邏輯“非”指令 NOT4、邏輯“異或” XOR5、測試指令TEST二、移位指令1)非循環移位1、算數左移SAL和邏輯左移SHL2、邏輯右移SHR3、算術