寫乙個堆疊(OPC原則 校驗器) 強烈推薦!!!

2021-10-08 14:54:42 字數 2848 閱讀 7662

#include  

#include

#include

#define maxsize

100//- 字元棧

//- 棧頂元素

//- 建立乙個棧

//- 銷毀乙個棧

//- 壓棧

//- 彈出棧

//- 返回棧中的資料個數

//- 判斷棧是否為空

//- 判斷棧是否滿

struct stackcdt

;typedef struct stackcdt *stackadt;

stackadt newstack()

void

freestack

(stackadt pdata)

bool stackfull

(stackadt pdata)

bool stackempty

(stackadt pdata)

bool pushstack

(stackadt pdata,size_t *value)

bool popstack

(stackadt pdata,size_t *value)

size_t getstackadtdepth

(stackadt pdata)

bool getstackadtelement

(stackadt pdata,size_t size,size_t *value)

int main()

注意點

bool popstack

(stackadt pdata,size_t *value)

這個執行的時候 要先–pdata->top 而不是pdata->top --。

假設只允許0到9之內的資料push到棧中怎麼辦呢,

乙個模組應該要「對擴充套件開放,對修改關閉」。

bool pushrangcheck

(stackadt pdata,int *value,int min,int max)

c語言從零寫個校驗器(很牛的校驗器)

#include  

#include

#include

#define newrangevalidator

(min, max)

#define newoddevenvalidator

(iseven)

#define maxsize

100//- 字元棧

//- 棧頂元素

//- 建立乙個棧

//- 銷毀乙個棧

//- 壓棧

//- 彈出棧

//- 返回棧中的資料個數

//- 判斷棧是否為空

//- 判斷棧是否滿

struct stackcdt

;typedef struct stackcdt *stackadt;

typedef bool(*

const validate)

(void

*pthis,int value)

;//變數先定義

typedef structst_rangcheck;

typedef struct st_oddcheck;

bool rangcheck

(void

*pdata,int value)

bool oddcheck

(void

*pdata,int value)

bool validatecheck

(void

*pdata ,int value)

stackadt newstack()

void

freestack

(stackadt pdata)

bool stackfull

(stackadt pdata)

bool stackempty

(stackadt pdata)

bool pushstack

(stackadt pdata,size_t *value)

bool popstack

(stackadt pdata,size_t *value)

size_t getstackadtdepth

(stackadt pdata)

bool getstackadtelement

(stackadt pdata,size_t size,size_t *value)

bool pushrangcheck

(stackadt pdata,int *value,int min,int max)

bool pushvalidatecheck

(stackadt sdata,

void

*pdata ,int value)

else

} int main()

bool pushrangcheck

(stackadt pdata,int *value,int min,int max)

bool pushvalidatecheck

(stackadt sdata,

void

*pdata ,int value)

else

}

在opc原則思想指導下,我們這邊可以輕鬆的建立相似的函式。美妙!!!

結合ruby寫的乙個校驗工具

背景 每次發布detail這邊一般都要發布多個js檔案,然後同步到不同的cdn 現階段cdn有提供乙個平台,前端在發布js後可以根據js的檔名來逐個校驗下每個js是否同步到每乙個cdn節點,但在有多個js發布的時候,可能不能逐一校驗,detail這邊有出現發布js後同步到個別的 節點同步失敗,所以考...

用c c 寫乙個堆疊管理程式

這是乙個面試題,那個狗日的面試官讓我當場寫出來,我要是能寫出來也得累出血了。感謝原文作者的貢獻,文中還有小錯誤,會盡快改正。標頭檔案 ifndef ksmfmemory define ksmfmemory ifndef kcahr define kchar char else define kcha...

堆疊實現乙個整型計算器

計算器特性 支援整型運算 能夠處理運算子和運算元間的空格,支援括號 實現思路 利用乙個運算元堆疊dgt和乙個運算子堆疊ops實現 1 從左至右掃瞄運算表示式輸入,若為運算元則直接壓入dgt堆疊 2 若為運算子則判斷ops中是否已經存在運算子,不存在則直接壓入,存在則與棧頂運算子比較優先順序,優先順序...