原创 斐波那契數列的遞歸及非遞歸

#include<stdio.h> #define N 10 //遞歸 int RecursiveFib(int n) { if (n <= 1) return n; return Recursiv

原创 二分查找的遞歸與非遞歸

#include<stdio.h> //循環 int CycleFind(int arr[], int left, int right, int input) { int mid = 0; if ((input<a

原创 鏈表常見習題

從尾到頭打印單鏈表 刪除一個無頭單鏈表的非尾節點(不能遍歷鏈表) 在無頭單鏈表的一個節點前插入一個節點(不能遍歷鏈表) 逆置/反轉單鏈表 單鏈表排序(冒泡排序) 合併兩個有序鏈表,合併後依然有序 查找單鏈表的中間節點,

原创 模擬實現庫函數

1、模擬實現strcpy函數 #include<stdio.h> #include<assert.h> char *my_strcpy(char *aims, const char *source) { assert(a

原创 動態內存開闢

【1】內存分配有三種方式: 1.從靜態存儲區分配,生命週期隨程序的結束而結束,比如全局變量,static變量 2.從棧空間分配,函數調用完其被自動釋放

原创 大端字節序、小端字節序

【大端字節序】 大端存儲模式是指數據的低字節內容保存到內存的高地址中,而數據的高字節內容保存到內存的低地址中 【小端字節序】 小端存儲模式是指數據的低字節內容保存到內存的低地址中,而數據的高字節內容保存到內存

原创 模擬實現內存操作函數memcpy、memmove

1、模擬實現memcpy memcpy是內存拷貝函數,功能是從源src所指的內存地址的起始位置開始拷貝n個字節到目標dest所指的內存地址的起始位置中。 函數原型爲:void *memcpy(void *dest, const

原创 C語言~通訊錄,可實現刪除、查找、更改等操作

通訊錄:可以存儲1000人的信息,包括姓名、年齡、性別、住址、聯繫方式,並能對其進行刪除、查找、更改、排序、清空、顯示、添加等操作。 AddressBook.h #include<stdio.h> #include<windows

原创 字符串面試題

1.數字轉換爲字符 2.字符串的翻轉 3.字符串的壓縮 4.字符串的刪除 5.查詢子串在母串中出現的次數 6.迴文字符串的判斷 void IntToString(char arr[], int num)//數字轉化字符

原创 指針數組 數組指針 函數指針

【1】指針數組和數組指針 指針數組:望文生義就是一個數組成員爲指針的數組。 int *arr1[10]; char *arr2[10]; 運算符*的優先級低於”[ ]”,所以說變量名先和哪個運算符結合就表示哪種類

原创 冒泡排序可以排序多個字符串。

原理和冒泡排序一樣,不過字符串以及字符的比較大小要用到strcmp函數 void BubbleString(char* str[],int len) { int i = 0,j = 0; for (i = 0; i

原创 數據結構---單鏈表

SeqList.h對單鏈表進行操作的函數: #include<stdio.h> #include<assert.h> #include<windows.h> #include<string.h> typedef int Data

原创 遞歸練習

遞歸:程序調用自身,大事化小 遞歸條件: 要有限制條件,以便跳出遞歸,以防死循環 每次的遞歸調用都要接近那個限制條件 1、接受一個無符號整形值,把它轉換爲字符並打印它 例如:12345 —-> 1 2 3 4 5

原创 棧和隊列

開門見山 【1】棧是限定在表的一端進行刪除、插入等操作,允許操作的一端稱爲棧頂,另一端稱爲棧底,元素的進出遵循後進先出 【2】隊列是在表的兩端同時進行操作,允許插入元素的一端稱爲隊尾,允許刪除的一端稱爲隊頭,遵循先進先出 棧

原创 動態順序表

SeqList.h #pragma once #include<stdio.h> #include<windows.h> #include<string.h> #include<assert.h> #include<malloc