int main(int argc, const char * argv[]) { DLinkList *list = DLinkList_Create(); for (int i = 0; i < 3; ++i) { Person *p1 = calloc(1, sizeof(Person)); p1->age = i + 1; DLinkList_Insert(list, &p1->node, 0); } int len = list->length; for (int i = 0; i < len; ++i ) { Node *node = DLinkList_Next(list); Person *p1 = (Person *)node; printf("value = %d\n",p1->age); } //删除链表 return 0; }
user_login(int sockfd, DLinkList* list,char* buf,struct sockaddr_in addr) { printf("login\n"); char msg[N]; user_info user; DLinkListNode* node=(DLinkListNode*)list; user.name=(buf+1); printf("%s\n",user.name); user.clientaddr=addr; DLinkList_Insert(list,(DLinkListNode*)&user,0); node=node->next; printf("%s\n",((user_info*)node)->name); sprintf(msg,"%s login",buf+1); user_tosend_msg(list,msg,addr,sockfd); printf("login sucess\n"); }
int main(int argc, const char *argv[]) { int i = 0; DLinkList *list = DLinkList_Create(); struct Value *pv = NULL; struct Value v1; struct Value v2; struct Value v3; struct Value v4; struct Value v5; v1.v = 1; v2.v = 2; v3.v = 3; v4.v = 4; v5.v = 5; DLinkList_Insert(list,(DLinkListNode *)&v1,DLinkList_Length(list)); DLinkList_Insert(list,(DLinkListNode *)&v2,DLinkList_Length(list)); DLinkList_Insert(list,(DLinkListNode *)&v3,DLinkList_Length(list)); DLinkList_Insert(list,(DLinkListNode *)&v4,DLinkList_Length(list)); DLinkList_Insert(list,(DLinkListNode *)&v5,DLinkList_Length(list)); for(i = 0; i < DLinkList_Length(list); i++) { pv = (struct Value *)DLinkList_Get(list, i); printf("%d \n", pv->v); } printf("\n"); DLinkList_Delete(list, DLinkList_Length(list)-1); DLinkList_Delete(list, 0); for(i = 0; i < DLinkList_Length(list); i++) { pv = (struct Value *)DLinkList_Next(list); printf("%d \n", pv->v); } printf("\n"); DLinkList_Reset(list); DLinkList_Next(list); pv = (struct Value *)DLinkList_Current(list); printf("%d \n", pv->v); DLinkList_DeleteNode(list, (DLinkListNode *)pv); pv = (struct Value *)DLinkList_Current(list); printf("%d \n", pv->v); DLinkList_Pre(list); pv = (struct Value *)DLinkList_Current(list); printf("%d \n", pv->v); printf("Length: %d \n", DLinkList_Length(list)); DLinkList_Destroy(list); return 0; }
void play() { Student s[maxn]; for (int i = 0; i < maxn; ++i) { s[i].age = i + 21; } DLinkList *list = NULL; list = DLinkList_Create(); // 创建链表 // 插入结点 for (int i = 0; i < maxn; ++i) { int ret = DLinkList_Insert(list, (DLinkListNode *)&s[i], DLinkList_Length(list)); if (ret < 0) { return; printf("function DLinkList_Insert err.\n"); } } // 遍历链表 for (int i = 0; i < DLinkList_Length(list); ++i) { Student *tmp = (Student *)DLinkList_Get(list, i); if (tmp == NULL) { printf("function DLinkList_Get err.\n"); return; } printf("age: %d\n", tmp->age); } DLinkList_Delete(list, DLinkList_Length(list) - 1); // 删除尾结点 DLinkList_Delete(list, 0); // 删除头结点 // 用游标遍历链表 for (int i = 0; i < DLinkList_Length(list); ++i) { Student *tmp = (Student *)DLinkList_Next(list); if (tmp == NULL) { printf("function DLinkList_Next err.\n"); return; } printf("age: %d\n", tmp->age); } printf("\n"); DLinkList_Reset(list); DLinkList_Next(list); Student *tmp = (Student *)DLinkList_Current(list); if (tmp == NULL) { printf("function DLinkList_Current err.\n"); return; } printf("age: %d\n", tmp->age); DLinkList_DeleteNode(list, (DLinkListNode*)tmp); tmp = (Student *)DLinkList_Current(list); if (tmp == NULL) { printf("function DLinkList_Current err.\n"); return; } printf("age: %d\n", tmp->age); printf("length: %d\n", DLinkList_Length(list)); DLinkList_Pre(list); tmp = (Student *)DLinkList_Current(list); if (tmp == NULL) { printf("function DLinkList_Current err.\n"); return; } printf("age: %d\n", tmp->age); printf("length: %d\n", DLinkList_Length(list)); DLinkList_Destroy(list); return; }