日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构 -- 可重用模块的接口设计模板

發布時間:2024/8/24 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构 -- 可重用模块的接口设计模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下以鏈表為例子,仔細體會代碼模塊化設計的思想以及代碼規范。

/*************************************************** * Coperight (C) SSE-USTC, 2014-2015 * FILE NAME : linktable.h * PRINCIPAL AUTHOR : Su YongSheng * SUBSYSTEM NAME : LinkTable * MODULE NAME : LinkTable * LANGUAGE : C++ * TARGET ENVIRONMENT : ANY * DATE OF FIRST RELEASE : 2014/4/10 * DESCRIPTION : interface of Link Table ****************************************************/ #ifndef _LINK_TABLE_H_ #define _LINK_TABLE_H_ #include <pthread.h> #define SUCCESS 0 #define FAILURE (-1)/* * LinkTable Node Type */ typedef struct LinkTableNode {struct LinkTableNode * pNext; }tLinkTableNode;/* * LinkTable Type */ typedef struct LinkTable {tLinkTableNode *pHead;tLinkTableNode *pTail;int SumOfNode;pthread_mutex_t mutex; }tLinkTable;/** Create a LinkTable*/ tLinkTable * CreateLinkTable();/** Delete a LinkTable*/ int DeleteLinkTable(tLinkTable *pLinkTable);/** Add a LinkTableNode to LinkTable*/ int AddLinkTableNode(tLinkTable *pLinkTable ,tLinkTableNode * pNode); /** Delete a LinkTableNode from LinkTable*/ int DelLinkTableNode(tLinkTable *pLinkTable ,tLinkTableNode * pNode); /** Get LinkTableHead*/ tLinkTableNode * GetLinkTableHead(tLinkTable *pLinkTable); /** get next LinkTableHead*/ tLinkTableNode * GetNextLinkTableNode(tLinkTable *pLinkTable ,tLinkTableNode * pNode); #endif /* _LINK_TABLE_H_ */ /*************************************************** * Coperight (C) SSE-USTC, 2014-2015 * FILE NAME : testlinktable.c * PRINCIPAL AUTHOR : Su YongSheng * SUBSYSTEM NAME : LinkTable * MODULE NAME : LinkTable * LANGUAGE : C++ * TARGET ENVIRONMENT : ANY * DATE OF FIRST RELEASE : 2014/4/10 * DESCRIPTION : test of LinkTable ****************************************************//** Revision log:* Creted by Su Yongsheng,2014/4/10* Verified callback and head/next for search by Su Yongsheng,2014*/ #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <linktable.h>#define debugtypedef struct Node {tLinkTable * pNext;int data; }tNode;tNode * Search(tLinkTable *pLinkTable); int main() {int i;tLinkTable * pLinkTable = CteateLinkTable();if(tLinkTable == NULL){printf("CreateLinkTable Error!\n");exit(0);}for(i = 0; i < 10; i++){tNode* pNode = (tNode*)malloc(sizeof(tNode));pNode->data = i;debug("AddLinkTableNode\n");AddLinkTableNode(pLinkTable, (tLinkTableNode *)pNode);}/*search one by one*/tNode *pTempNode = Search(pLinkTable);printf("%d\n", pTempNode->data);debuf("DelLinkTableNode\n");DelLinkTableNode(pLinkTable,(tLinkTableNode *)pTempNode);free(pTempNode);free(pTempNode);DelteLinkTable(pLinkTable); }tNode * Search(tLinkTable *pLinkTable) {debug("Search GetLinkTableHead\n");tNode * pNode = (tNode*)GetLinkTableHead(pLinkTable);while(pNode != NULL){if(pNode->data == 5){return pNode;}degut(GetNextLinkTableNode\n");pNode = (tNode*)GetNextLinkTableNode(pLinkTable);}return NULL; }

?

轉載于:https://www.cnblogs.com/yongssu/p/4415926.html

總結

以上是生活随笔為你收集整理的数据结构 -- 可重用模块的接口设计模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。