//此鍊錶具有stringbuffer, hashtab, list, vector 的功能
#ifndef _list_
#define _list_
#include "stdbool.h"
struct item
;struct list
;#define push_fl_empty 0
#define push_fl_data 1
#define push_fl_hash 2
#define push_fl_all push_fl_data|push_fl_hash
#define init_list(plist) memset(plist,0,sizeof(struct list))
void push_list(struct list *plist, void *pdata, unsigned int size, unsigned int flag); //將p指向的size個位元組資料存入鍊錶
void clear_list(struct list *plist); //清除鍊錶
void pop_list(struct list *plist); //彈出最後乙個節點資料
void *compress_list(struct list *plist); //將鍊錶壓縮為資料流
#endif //(_list_)
#include #include #include "list.h"
// bkdr hash function
unsigned int bkdrhash(char *str, unsigned int len)
else
if (flag&push_fl_hash)
else
pitem->next=0;
pitem->last=0;
if (plist->head==0)
else if (plist->end)
plist->end=pitem;
plist->length+=pitem->size;
plist->items++;
}}//從煉表裡尋找
int find_item(struct list *plist, void *pdata, unsigned int size)
else if (strncmp((const char *)pitem->data,(const char *)pdata,size)==0)
pitem=pitem->next; i++;
}return -1;
}void clear_list(struct list *plist)
plist->end=plist->head=0;
}void pop_list(struct list *plist)
void * compress_list(struct list *plist)
//釋放當前節點記憶體
free(pitem);
pitem=next;
}*pdata=0;
plist->head=pnew;
return pnew->data;
}return 0;
}//#include /*
int main(int argc, char **argv)
if (find_item(&l,temp,10)==-1)
}printf("items:%d length:%d\n", l.items, l.length);
clear_list(&l);
return 0;
}*/
多功能閥知識
何謂多功能水幫浦控制閥?水幫浦有什麼執行特性需要閥門來控制?水幫浦控制閥能否實現這些控制?以及它與傳統的閘閥 蝶閥 止回閥以及勻速 雙速緩閉 的水力控制止回閥在原理 功能等方面有什麼質的不同,筆者在本文中以活塞式多功能水幫浦控 制閥 下稱控制閥 為例,通過對其結構 主要功能 工作原理的剖析,提出對上...
多功能標籤CLabelEx
多功能標籤clabelex 引言 做使用者介面的時候經常要用到一些靜態文字控制項,顯示一些文字資訊,但是 mfc 提供的 cstatic類的功能過於簡單,無法滿足高階需求。為此我從 cstatic 派生了乙個類 clabelex,擴充套件了cstatic。第一次投稿,水平不足請大家見諒。我從 vck...
多功能輸入法
多功能輸入法 前端介面模組設計與實現 摘要隨著輸入法的發展,輸入法的外觀變得越來越美麗。由於使用者的使用習慣各不相同,為了滿足大多數的人的使用習慣,輸入法發展了新的方式,這方式不但增強了輸入法前端介面,而且憑藉photoshop的強大影象處理技術,為輸入法外觀增添了很多元素。本 主要介紹狀態視窗 編...