原创 線程創建當中遇到的一些自我理解

首先說明一下我們的線程是在Linux下創建的,即pcb模擬線程。 掃一眼man手冊裏面的用法說明 創建線程 int pthread_create(pthread_t *thread, pthread_attr_t *at

原创 逆序鏈表

如圖我們需要將一個正向鏈表首尾倒置,實現一個相反的鏈表。 方法一: 我們可以定義一個result節點並且把這個節點一直置空,那麼我們就可以藉助這樣一個節點實現首位逆置了。 ListNode * ReverseList(ListNod

原创 帶頭雙向循環鏈表

#pragma once #include<stdlib.h> #include<stdio.h> #include<assert.h> typedef int DataType; typedef struct DNode { Da

原创 複雜鏈表的複製,有一個next指針指向下一個結點,還有一個random指針指向這個鏈表中的一個隨機結點或者NULL,先要求複製這個鏈表,返回複製後的新鏈表。

定義一個簡單的複雜鏈表。 注意 1.複雜鏈表的複製先處理複雜鏈表爲空,這之間返回。 2.當複雜鏈表不爲空,複製鏈表需要在原鏈表每個節點連接處插入新結點。 3.新結點隨機指針域,(隨機指針域爲原結點隨機指針域的下一個節點。 4.將新鏈

原创 系統I/O

先看一下man手冊對系統調用接口的說明 > int open(const char *pathname, int flags, mode_t mode); pathname: 要打開的文件名 flags:選項標誌 O_RDONLY

原创 從尾到頭打印單鏈表

可運用兩種方法打印: 方法一:循環算法 方法二:遞歸壓棧調用 方法一: 先調用我們已經寫好的鏈表頭文件List.h鏈表構造方面不過多說明。 void PrintReverse(ListNode *first) { ListNode

原创 重定向

首先我們先來看一下重定向之輸出重定向的基本流程理解。 我們需要知道我們的文件描述符是什麼了? 通過自己理解淺顯不深入的說文件描述符是一個進程指向一個文件結構體(file_struct)數組的下標,當然這個下標也是從0開始的,而且默認

原创 用命名管道實現兩個進程間通信

首先說明一下匿名管道和命名管道之間的區別 匿名管道根據其名字就可以理解到這個管道是隱藏在深海當中不可間的,使用我們進程間要是沒有點練習連這條管道都找不到。 但是如果我們嗯是想在兩個不相關的文件當中通信的話,憑自己的理解來說

原创 CSDN-markdown編輯器的使用

這裏寫自定義目錄標題歡迎使用Markdown編輯器新的改變功能快捷鍵合理的創建標題,有助於目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、居右SmartyPants

原创 日期類基本功能實現

實現基本日期類型的加減操作 demo:通過給指定日期加減一個天數 計算兩個日期之間相差的天數 通過數組給月份賦值 通過operator重載符號對內置類型符號重載 *注意operator賦值時候應該滿足日期類的實際情況 month <

原创 c中const和c++中const的區別

區別 **C語言的const是定義了一個const變量,該變量只具備讀的功能,而不具備寫的功能。 **C++的const是定義了一個常量。 c++中,const可以修飾類的成員函數,但在c中,不能修飾函數。 c++中,被修飾的類的成員函數

原创 c語言簡單通訊錄

日常之中通訊錄的基本要求應該滿足這樣幾個條件: 1.讀出 2.列出所有記錄(列出姓名,電話號等) 3.查詢功能 4.修改更能 5.刪除功能 6.保存功能 其中主要用到的知識點: 動態開闢內存,根據用戶需要創建通訊錄大小 練習結構體的聲明定

原创 C++實現字符串的反轉

例如:輸入“hello"            輸出”olleh" 關鍵:在於字符數組\0前面的一個字符作爲中點進行反轉。 class Solution{ public: string reverseSting(string s

原创 互斥鎖的使用

 多個線程臨界資源爭搶寫入操作會造成邏輯混亂/數據丟失二義性,因此就引入線程安全概念。     線程使用本身就是線程間通信方便成本低而廣爲使用。這樣的話就無法避免資源爭搶操作,這時候就必須考慮線程安全。     保證線程安全更多指的是保證

原创 代碼判斷大小端

我們可以通過指針類型強轉和聯合體判斷大小端,兩種方式的本質相同,都是通過int類型轉char類型比特位的丟失來判斷的。 指針類型強轉 int main() { int i = 0x12345678; char *c =