原创 二叉樹的非遞歸遍歷與遞歸打印 先序遍歷

#include<stdio.h> #include<stdlib.h> #include<string.h> #define max_size 20 //person姓名的大小 #define my_false 0 #def

原创 數組中容易出現的一些問題

一、代碼 #include<stdio.h> //數組 // 1、在定義數組的同一個函數中,sizeof(arr),表示整個數組; // 2、在定義數組的同一個函數中,&arr+1,表示加整個數組的大小; // 3、其他情況

原创 靜態順序表概念及代碼

一、順序表的概念 按照線形表的邏輯順序,依次存儲到一塊連續的存儲空間中。 二、特點 1、優點是可以按照下標進行訪問,與數組相似,比較方便。 2、缺點是如果需要插入或刪除元素,則需要移動大量的元素。 三、代碼展示 1、頭文件 #in

原创 靜態鏈表概念及代碼

一、順序表與靜態鏈表的不同 1、順序表和靜態鏈表的物理結構(即存儲結構)是相同的,在計算機內存中以數組的形式保存的線性表,是用一組地址連續的存儲單元依次存儲數據元素的線性結構,但兩者的數據結構(邏輯結構)是不同的。 2、順序表:着

原创 給一個正整數,要求:1.求出它是幾位數;2.分別輸出每一位數字;3.按逆序輸出每一位數字,例如原數爲321,應輸出123。

//統計n是個位數字 //算法:每次丟棄個位數字(n/=10) int GetFigures(int n) { int i; for(i=0;n != 0 ; i++) { n=n/10; } return i; } //順序輸出

原创 動態順序表概念及代碼

一、動態順序g表概念 在靜態順序表的基礎上添加一個判斷有效元素是否等於最大容量的函數,並且當有效元素等於最大容量時對最大容量進行擴容。 二、代碼展示 1、頭文件 #include<stdio.h> #include<string.

原创 單鏈表概念及代碼

一、概念 單鏈表是一種鏈式存儲的數據結構,用一組地址任意的存儲單元存放線性表中的數據元素。鏈表中的數據是以結點來表示的,每個結點的構成:元素(數據元素的映象) +指針(指示後繼元素存儲位置),元素就是存儲數據的存儲單元,指針就是連

原创 快速排序及其優化

一、特點 當劃分均勻時快速排序的時間複雜度是O(nlogn),空間複雜度是O(logn)。 當劃分完全不均勻時時間複雜度是O(n²),空間複雜度是O(n)。 二、思想 快排是對冒泡的進一步改進,它的思想是分治和遞歸。通過一趟排序將

原创 折半查找法

折半查找法 int main() { const int n=10; int i,number,top,bott,mid,loca,a[n];//mid用bott和top表示,方便迭代。 bool flag=true,sign

原创 動態內存及相關函數

malloc —— 申請內存 calloc —— 初始化爲0 realloc —— 修改內存大小(擴大,縮小) free —— 釋放內存,內存泄漏 malloc: int *arr = (int ) malloc (nsizeof

原创 循環鏈表企業鏈表

一、特點 讓鏈表的最後一個結點的next指針指向頭結點。初始化小節點時直接讓next指針指向鏈表的頭結點。 二、代碼 #include<stdio.h> #include<stdlib.h> #include<string.h>