原创 簡易計算器(利用函數指針數組)
#include<stdio.h> #include<windows.h> #pragma warning(disable:4996) int add(int a, int b) { return a + b; } in
原创 動態內存函數
當我們需要需要內存時,通常的開闢方法開闢的空間大小是提前設定好的的,如果要使用的空間大小在程序運行時才能知道,就要選擇動態內存開闢了。 動態內存函數有malloc, calloc, realloc, free。 前三個函數是開
原创 初入Linux
開始接觸Linux,它的操作比windows難了許多,需要用輸入命令來執行操作。 下面介紹一下Linux的入門級命令: ls //list 列出當前文件夾的所有文件 cd //chan
原创 指針與指針進階
開始先來介紹一下什麼是指針: 在計算機科學中,指針是編程語言中的一個對象,利用地址,它的值直接指向存在電腦存儲器中另一個地方的值。由於通過地址能找到所需的變量單元,可以說,地址指向該變量單元。因此,將地址形象化的稱爲“指針”。
原创 可變參數列表求最大值與平均值
求最大值: #include<stdio.h> #include<Windows.h> #include<stdarg.h> #pragma warning(disable:4996) int Max(int n, ...)
原创 時間複雜度與空間複雜度詳解
算法的時間複雜度和空間複雜度合稱爲算法的複雜度。 1.時間複雜度 (1)時間頻度 一個算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個算法都上機測試,只需知道哪個算法花費的時間多,哪
原创 用C實現堆排序
堆排序(Heapsort)是指利用堆積樹(堆)這種 數據結構所設計的一種 排序算法,它是選擇排序的一種。可以利用 數組的特點快速定位指定索引的元素。堆分爲大根堆和小根堆,是 完全二叉樹。 本次堆排序利用了小根堆堆
原创 自定義類型:結構體,枚舉,聯合
結構體(struct)是由一系列具有相同類型或不同類型的數據構成的數據集合,也叫結構。 先來聲明一個結構體: struct tag { member-list; }variable-list; 在聲明結構的時候,可以不完全聲
原创 C語言中的宏
先來介紹一些預處理標識符: *__*LINE__:表示進行編譯的當前文件當前所在的行號。 *__*FILE__:進行編譯的源文件所在目錄。 *__*DATE__ :表示當前文件被編譯的日期。 *強調內容*TIME :⽂件被
原创 JAVA的基本類型與裝箱類型
JAVA的基本類型與包裝類型 爲什麼有了基本類型還需要裝箱類型? 雖然JAVA語言是面向對象的變成語言,但是其中的八大基本數據類型並不支持面向對象編程,基本類型的數據不具備“對象”的特性:不攜帶屬性,沒有方法可以調用。沿用基本數據
原创 實現一個順序表
頭文件:ag.h #ifndef __ag_H__ #define __ag_H__ #include<stdio.h> #pragma warning(disable:4996) #define MAX_SIZE
原创 二叉搜索樹的實現
二叉搜索樹(BinarySortTree),又稱二叉查找樹、二叉排序樹。它或者是一棵空樹;或者是具有下列性質的二叉樹: 1.若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 2.若右子樹不空,則右子樹上所有結點的值均
原创 sscanf與sprintf
看到sscanf與sprintf,大家一定會聯想他們與scanf、printf的關係。 下面就介紹一下sscanf與sprintf函數: sscanf: int sscanf( const char *buffer,
原创 用C實現堆的基本操作
頭文件 Heap.h #pragma once #include<stdlib.h> #include<stdio.h> #include<assert.h> #include<string.h> typedef int Da
原创 直接插入排序的C實現
用一張圖來簡單描述直接插入排序的過程:代碼實現如下:#include<stdio.h>#include<stdlib.h>void Insertsort2(int arr[], int n){ int i, j; for (i = 1;