原创 將兩個值進行交換的方法
#include<stdio.h> int main(int argc, char* argv[]) { int a=5,b=10,c=0; c=a; a=b; b=c; printf("a=%d b=%d\n",a,b); return
原创 編寫一個程序,它從標準輸入(終端)讀取C源代碼,並驗證所有的花括號都正確的成對出現。
#include<stdio.h> int main() { int cou=0; char ch; while((ch=getchar())!='\n') { if(ch=='{') cou++; else if(ch=='}') { i
原创 雙向鏈表的實現
#include<iostream> using namespace std; #include<assert.h> typedef int DataType; struct ListNode { DataType _data; ListN
原创 一個數組實現兩個棧
題目: 一個數組A[1..n]來實現兩個棧,使得兩個棧中的元素總和不到n時,兩個都不會發生上溯。思路(1): 創建一個數組,分別從兩邊開始,依次往中間走。思路(2): 創建一個數組,一個走奇數位,一個走偶數位。//奇偶方式 #def
原创 哈希表的實現
散列表(Hash table,也叫哈希表),是根據關鍵字(Key value)而直接訪問在內存存儲位置的數據結構。也就是說,它通過計算一個關於鍵值的函數,將所需查詢的數據映射到表中一個位置來訪問記錄,這加快了查找速度。這個映射函數稱做
原创 鏈表面試題
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<assert.h> typedef int DataType; typedef struct SListNod
原创 註釋轉換
#include<stdio.h> #include<assert.h> typedef enum ConvertState { SUCCESS, NO_MATCH, }ConvertState; typedef enum State {
原创 關於指針的一些總結
對於動態分配的內存在使用前一定要檢驗是否分配成功,在使用完成之後進行釋放。檢驗方法:int *p = (int *)malloc(10 * sizeof(int)); if (p == NULL) { printf("out of memo
原创 通訊錄的簡單實現
#include<stdio.h> #include<stdlib.h> #include<string.h> int count= 0; int menu(); void add(); void select(); void mod
原创 猜數字遊戲
#include<stdio.h> # include<stdlib.h> # include<time.h> void menu() { printf("*********************\n"); printf("歡
原创 日期類的實現
#include<iostream> using namespace std; class Data { public: Data(int year , int month, int day) ; void Display(); bo
原创 智能指針的簡單實現
智能指針:動態的管理開闢的內存,防止人爲的內存泄漏。 SharedPtr的實現: 原理:使用引用計數的原理使多個對象可以指向一塊空間。 #define _CRT_SECURE_NO_WARNINGS #include<iostream
原创 位圖&布隆過濾器
位圖定義: 利用位的狀態來存放一個數是否存在,其實就是把一個數映射成一個簡單的數用以標記他是否存在,一般使用情況爲查找一個數是否存在。數據結構: 1/8=0 1%8=1 1<<1(第二個bit位置1)2/8=0 2%8=
原创 一個數組實現兩個棧
題目: 一個數組A[1..n]來實現兩個棧,使得兩個棧中的元素總和不到n時,兩個都不會發生上溯。思路(1): 創建一個數組,分別從兩邊開始,依次往中間走。思路(2): 創建一個數組,一個走奇數位,一個走偶數位。//奇偶方式 #def
原创 字符串轉浮點數 字符串轉整型數
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<assert.h> double AtOf(const char* ptr); d