原创 模擬實現常用字符串函數

1、查找子字符串函數strstr的實現 char *  my_strstr(const char * dest, const char * src)//const保護字符串不被更改 { assert(dest); assert(src

原创 用C語言實現“智障”的棋盤遊戲

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> /*函數聲明*/ void Init_Arr(int arr[ ][3]);  //數組初始化

原创 C語言中移位、邏輯運算符的簡單應用

&運算符 一、 計算二進制中1 的個數比如: 15       0000 1111       4 個 1 要求其數字的存儲方式爲int int count_one_bits(unsigned int value)//計算1的位數函數 {

原创 回調函數實現冒泡法的多種排序

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> typedef 

原创 C語言常見單鏈表面試題(1)

1、刪除單鏈表的非尾節點解題思路:按照一般的思路單鏈表刪除節點是必須知道其前驅節點才能刪除,而在本題中不知道前驅節點,所以轉換思路,先將需要刪除的節點跟其後繼節點的數據域交換,然後再刪除既可。void EraseNotTail(pLinkN

原创 ctags 和Makefile的簡單使用

ctagsctags是vim下方便代碼閱讀的工具。儘管ctags也可以支持其它編輯器,但是它正式支持的只有VIM。並且VIM中已經默認安裝了Ctags,它可以幫助程序員很容易地瀏覽源代碼。(尤其是大型的工程)一、安裝ctags1、命令行安裝

原创 面試題的那些事(2)—斐波那契數列

斐波那契數列1、寫一個函數,輸入n,求斐波那契數列的第n項。斐波納挈數列的定義如下:解法一:使用遞歸解決long long RecurFibonacci(unsigned int n) { if (n <= 0) { return 

原创 廣義表的遞歸實現

廣義表的定義廣義表是非線性的結構,是線性表的一種擴展,是有n個元素組成有限序列。廣義表的定義是遞歸的,因爲在表的描述中又得到了表,允許表中有表。例如    <1> A = ()    <2> B = (a,b)    <3> C = (a,

原创 稀疏矩陣的壓縮

稀疏矩陣的特點M*N矩陣,矩陣中有效值的個數遠遠小於無效值的個數,並且這些數據的分佈沒有規律。例如下面的矩陣稀疏矩陣的壓縮存儲壓縮矩陣值存儲極少數的有效數據。使用三元組來存儲每一個數據,三元組數據按照矩陣中的位置,以行優先順序依次存放。則上

原创 複雜鏈表的複製

題目:一個鏈表的每個節點,有一個指向next指針指向先一個節點,還有一個random指針指向這個鏈表的一個隨機節點或者NULL,現在要求實現複製這個複雜的鏈表,返回複製後的新鏈表。複雜鏈表的結構template<class T> struc

原创 面試題的那些事(1)

1、春節期間小明使用微信收到很多個紅包,非常開心。在查看領取紅包記錄時發現,某個紅包金額出現的次數超過了紅包總數的一半。請幫小明找到該紅包金額。寫出具體算法思路和代碼實現,要求算法儘可能高效。給定一個紅包的金額數組gifts及它的大小n,請

原创 二叉樹的非遞歸遍歷

template<class T> void BinaryTree<T>:: PrevOrderNoRec() { if (_root == NULL) { return; } stack<Node*> s; s.push(_

原创 如何將你的vim配置的“高大上”

vim對於一個經常在linux進行編程的程序員,將vim 配置的高大上是一個程序員的基本素養。接下來就來給大家介紹一下如何簡單的配置vim首先來上一張效果圖配置文件的位置    在目錄 /etc/ 下面,有個名爲vimrc的文件,這是系統中

原创 C語言註釋轉換爲c++的註釋

問題要求:將C語言的註釋轉換爲c++的註釋方式常見的C語言註釋問題,由此可見C語言的註釋比較複雜,情況也比較多,如果按照以下的情況一種一種的去處理的話邏輯太過混亂,無法真正的整理清楚,所以需要轉換思路。將複雜的控制邏輯分解成有限個穩定狀態,

原创 我的友情鏈接

11292790