原创 迷宮及走迷宮時的最優解

下面簡單闡述下使用棧(循環)和使用遞歸來走迷宮的區別: 使用遞歸: 分爲兩個部分: 一部分爲已走過的路徑(通路) 另一問題是:遞歸的子問題(根據下一個可以通的位置繼續查找出口)。 將走過的路徑保存在棧幀內

原创 瞭解c++中的類型轉換

1、static_cast(隱式類型轉換)—–>相關類型的轉換 static_cast用於非多態類型的轉換(靜態轉換),任何標準轉換都可以用它,但 它不能用於兩個不相關的類型進行轉換。 2、reinterpret_cast

原创 模擬實現list(iterator)

說明:list的erase存在迭代器失效問題,本文給出兩種解決方法,其中的一種是stl中給出的解決方法。 //List.h #pragma once #define _CRT_SECURuE_NO_WARNINGS 1 #inc

原创 探索文件描述符(fd)與FILE結構體之間的關係

文件描述符(fd) 對於linux而言,所有對設備(對於linux而言,一切皆文件)和文件的操作都使用文件描述符來進行的。 文件描述符是一個非負的整數,它是一個索引值,指向內核中每個進程打開文件的記錄表。 當打開一個現存文件或創建

原创 文本文件和二進制文件詳解(轉)

轉自:http://www.cnblogs.com/pengwangguoyh/articles/3223072.html 前言: 1)文本文件:這類文件以文本的ASCII碼形式存儲在計算機中。它是以”行”爲基本結構的一種信息組織

原创 對稱矩陣及稀疏矩陣淺談

1.對稱矩陣 特點: 關於對角線對稱,Aij == Aji。 下面實現: ①對稱矩陣的壓縮存儲 ②對稱矩陣的訪問 ③對稱矩陣的還原 實現代碼如下: #define _CRT_SECURE_NO_WARNINGS 1 #i

原创 二叉搜索樹

特點: 二叉查找樹(Binary Search Tree),也稱有序二叉樹(ordered binary tree),排序二叉樹(sorted binary tree) 一般具有下面的特點: 若任意節點的左子樹不空,則左子樹上

原创 進程間通信----->共享內存

本文內容說明: *共享內存的概念 *通過共享內存來達到進程間通信。 共享內存: 在Linux中,每個進程都有自己的P C B 和地址空間,並且都有一個對應的頁表,負責將進程的地址和物理地址進行映射,通過MMU來管理。創建一段共

原创 進程間通信之管道

管道: 管道是進程間通信的主要手段之一。 一個管道實際上就是個只存在於內存中的文件, 對這個管道的操作需要兩個已經打開的文件(兩個文件描述符),代表管道的兩端。 管道根據其適用範圍可分爲: 匿名管道和命名管道。

原创 二叉樹的基本操作

1。二叉樹的特點: 二叉樹的特點: 1.每個節點最多有兩棵子樹,即二叉樹中不存在度大於2的節點(分支數最大不超過2) 2.二叉樹的子樹有左右之分,也就是說二叉樹是有序的。 2。二叉樹的基本操作(遞歸): 以下面的二叉樹爲

原创 初探進程及task_struct

文章概要: 1.進程概念的簡單普及 2.進程控制塊(PCB)中成員信息 一、操作系統:管理軟硬件資源 1.操作系統必須支持交替執行多個進程,在合理的響應時間範圍內使處理器的利用率達到最大。 2.操作系統必須按照特定的策略

原创 進程間通信---->信號量

進程間通信(IPC) Linux中的內存空間分爲系統空間和用戶空間。 在系統空間中,由於各個線程的地址空間都是共享的,即一個線程能夠隨意訪問kernel中的任意地址,所以無需進程通信機制的保護。 而在用戶空間中,每

原创 時間複雜度和空間複雜度

一開始接觸數據結構,不可避免的要了解如何計算一個算法的時間複雜度和空間複雜度,也許你之前聽過,但是並沒有深入瞭解的話,那麼就可以和我一起來了解下哦。。。 本篇文章講的主要內容: 1.時間複雜度 2.空間複雜度 3.兩個小例子

原创 表達式求值(中綴轉後綴及後綴表達式求值)

。中綴表達式轉後綴表達式: 中綴表達式轉後綴表達式遵循以下原則: 1.遇到操作數,直接輸出; 2.棧爲空時,遇到運算符,入棧; 3.遇到左括號,將其入棧; 4.遇