linux__链表__操作
2012-05-19 10:48
295 查看
#include <stdio.h> #include <stdlib.h> CSocketList:: CSocketList() { lSocket=0; ///当前节点的socket lUdata=NULL; ///节点的 user data lHead=NULL; lPrev=NULL; lNext=NULL; lTail=NULL; } CSocketList:: ~CSocketList() { } int CSocketList::clean_socketlist() { CycleList *pList1,*pList2; if(lHead==NULL) { return 0; ///链表为空,直接返回 } pList1 = lHead; while(pList1 != NULL) { pList2 = pList1->lNext; free(pList1); pList1=pList2; } return 0; /// } int CSocketList::addlist_bysocket(int socket,void *udata) { CycleList *newlist; if(socket==0) { return -1; } newlist=lHead; while(newlist!=NULL) { if(newlist->lSocket==socket)///如果已经存在,则不增加 直接返回 { printf("socket always exist! not execute;return\n"); return 0; } newlist=newlist->lNext; } newlist=(CycleList* )malloc(sizeof(CycleList)); if(newlist==NULL) { printf("list malloc failed!\n"); return -1; } if(lHead==NULL)///如果是刚开始 { lHead=newlist; lHead->lSocket=socket; lHead->lUdata=udata; lHead->lNext=NULL; lHead->lPrev=NULL; lTail=NULL; } else if(lTail==NULL)///第二次 { newlist->lSocket=socket; newlist->lUdata=udata; newlist->lPrev=lHead; newlist->lNext=NULL; lHead->lNext=newlist; lTail=newlist; } else { newlist->lSocket=socket; newlist->lUdata=udata; newlist->lPrev=lTail; newlist->lNext=NULL; lTail->lNext=newlist; lTail=newlist; ///追加到尾部 } return 0; } int CSocketList::dellist_bysocket(int socket) /// {
相关文章推荐
- linux 内核链表操作头文件list.h
- Linux链表操作
- linux 内核的链表操作(好文不得不转)
- linux 内核的链表操作(好文不得不转)
- Linux下的C语言编程——用链表实现栈操作
- linux内核之链表操作解析【转】
- linux 内核的链表操作(好文不得不转)
- linux 内核的链表操作
- linux下练习 c++ 链表操作
- linux之list链表操作
- Linux下的C语言编程——链表实现队列操作
- 链表的创建和相关操作(Linux下Vim编制)
- linux 内核链表操作头文件list.h C++
- linux内核之链表操作解析
- linux 内核的链表操作(好文不得不转)
- linux驱动中的链表操作
- linux 内核的链表操作
- LINUX下链表操作函数的源代码
- linux基本操作---shell编程 for循环(99乘法表)
- linux 图形界面和文本界面的切换操作方法