C语言使用utlist实现的双向链表
发布时间:2020-12-16 07:46:53 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #include stdio.h#include stdlib.h#include string.h#include "utlist.h" #define BUFLEN 20 typedef struct el { char bname[BUFLEN]; struct el *n
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #include <stdio.h> #include <stdlib.h> #include <string.h> #include "utlist.h" #define BUFLEN 20 typedef struct el { char bname[BUFLEN]; struct el *next,*prev; } el; int namecmp(el *a,el *b) { return strcmp(a->bname,b->bname); } el *head = NULL; /* important- initialize to NULL! */ int main(int argc,char *argv[]) { el *name,*elt,*tmp,etmp; char linebuf[BUFLEN]; int count; FILE *file; if ( (file = fopen( "test11.dat","r" )) == NULL ) { perror("can't open: "); exit(-1); } while (fgets(linebuf,BUFLEN,file) != NULL) { if ( (name = (el*)malloc(sizeof(el))) == NULL) exit(-1); strncpy(name->bname,linebuf,BUFLEN); DL_APPEND(head,name); } DL_SORT(head,namecmp); DL_FOREACH(head,elt) printf("%s",elt->bname); DL_COUNT(head,elt,count); printf("%d number of elements in listn",count); memcpy(&etmp.bname,"WESn",5); DL_SEARCH(head,&etmp,namecmp); if (elt) printf("found %sn",elt->bname); /* now delete each element,use the safe iterator */ DL_FOREACH_SAFE(head,tmp) { DL_DELETE(head,elt); } fclose(file); return 0; } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |