原创 簡易計算器(利用函數指針數組)

#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;