



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
双向链表的C实现struct Node void* pUserData;struct Node* pNext;struct Node* pPrev; _Node;struct TABLE struct Node* pHead;struct Node* pTail; _TABLE;struct POSITION struct TABLE* pTable; struct Node* pNode; _POSITION;struct TABLE* CreateTable(void);void FreeTable(struct TABLE*);void AddTail(struct TABLE*,void* pUserData);void InsertAt(struct POSITION*,void*);void RemoveAt(struct POSITION*);void* GetAt(struct POSITION*);void* GetNext(struct POSITION*);void* GetPrev(struct POSITION*);struct POSITION GetHeadPosition(struct TABLE*);struct POSITION GetTailPosition(struct TABLE*);struct POSITION GetPosition(struct TABLE*,unsigned int);int GetCount(struct TABLE*);struct TABLE* CreateTable()struct TABLE* pTable = (struct TABLE*)malloc(sizeof(_TABLE);if(pTable = NULL)return NULL;pTable- pHead = NULL;pTable- pTail = NULL;return pTable;void FreeTable(struct TABLE* pTable)struct Node* pNode;while(pTable- pHead)pNode = pTable- pHead;pTable- pHead = pTable- pHead- pNext;free(pNode);free(pTable);void AddTail(struct TABLE* pTable,void* pUserData)struct Node* pNode;pNode = (struct Node*)malloc(sizeof(_Node);if(pNode = NULL)return;pNode- pUserData = pUserData;pNode- pNext = NULL;if(pTable- pHead=NULL & pTable- pTail=NULL)pNode- pPrev = NULL;pTable- pHead = pNode;elsepNode- pPrev = pTable- pTail;pTable- pTail- pNext = pNode;pTable- pTail = pNode;void RemoveAt(struct POSITION* pos)if(pos- pNode = NULL)errcode|=1 pTable- pHead = NULL & pos- pTable- pTail = NULL)return;if(pos- pNode = pos- pTable- pHead)if(pos- pNode = pos- pTable- pTail)pos- pTable- pHead = NULL;pos- pTable- pTail = NULL;elsepos- pTable- pHead = pos- pNode- pNext;pos- pTable- pHead- pPrev = NULL;elseif(pos- pNode = pos- pTable- pTail)pos- pTable- pTail = pos- pNode- pPrev;pos- pTable- pTail- pNext = NULL;elsepos- pNode- pPrev- pNext = pos- pNode- pNext;pos- pNode- pNext- pPrev = pos- pNode- pPrev;free(pos- pNode);void InsertAt(struct POSITION* pos,void* pUserData)struct Node* pNode;if(pos- pNode = NULL)return;pNode = (struct Node*)malloc(sizeof(_Node);if(pNode = NULL)return;pNode- pUserData = pUserData;if(pos- pNode = pos- pTable- pHead)pNode- pPrev = NULL;pNode- pNext = pos- pTable- pHead;pos- pTable- pHead- pPrev = pNode;pos- pTable- pHead = pNode;elsepos- pNode- pPrev- pNext = pNode;pNode- pPrev = pos- pNode- pPrev;pNode- pNext = pos- pNode;pos- pNode- pPrev = pNode;void* GetAt(struct POSITION* pos)if(pos- pNode = NULL)return NULL;return pos- pNode- pUserData;void* GetNext(struct POSITION* pos)struct Node* pNode;if(pos- pNode = NULL) return NULL;pNode = pos- pNode;pos- pNode = pos- pNode- pNext;return pNode- pUserData;void* GetPrev(struct POSITION* pos)struct Node* pNode;if(pos- pNode = NULL) return NULL;pNode = pos- pNode;pos- pNode = pos- pNode- pPrev;return pNode- pUserData;struct POSITION GetHeadPosition(struct TABLE* pTable)struct POSITION pos;pos.pTable = pTable;pos.pNode = pTable- pHead;return pos;struct POSITION GetTailPosition(struct TABLE* pTable)struct POSITION pos;pos.pTable = pTable;pos.pNode = pTable- pTail;return pos;struct POSITION GetPosition(struct TABLE* pTable,unsigned int index)struct POSITION pos;pos.pTable = pTable;pos.pNode = pTable- pHead;while(index-)if(pos.pNode = NULL)break;pos.pNode = p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业商务写字楼租赁合同示范文本
- 高铁餐饮考试题及答案
- 复杂日语考试题目及答案
- 放射职称考试题目及答案
- 2025房屋中介买卖合同模板
- 法学电网考试题目及答案
- 中国五氟化磷项目创业计划书
- 2025信托资金借款合同书格式范本
- 电诈防范考试题及答案
- 中国硼酸酯偶联剂项目商业计划书
- 制造业企业转型升级路径
- DB32-T 4937-2024 土地征收前社会稳定风险评估规范
- 2025年聊城临清市城乡公益性岗位招考聘用3846人高频重点提升(共500题)附带答案详解
- 复盘+把经验转化为能力- 读书笔记
- 《中国古代宗教》课件
- 心内科冠心病一病一品汇报
- 《柳钢项目》课件
- 消防安全例会制度与流程
- 窗帘安装安全规范及服务方案
- 租地合同书样本电子版
- 亚马逊公司合同模板
评论
0/150
提交评论