1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #include<stdio.h> #include"LinkList.h" #include<string.h> typedef struct PERSON { LinkNode node; char name[64]; int age; }Person;
void MyPrint(LinkNode* data) { Person *p = (Person*)data;
printf("%s,%d\n", p->name, p->age); }
int compare(LinkNode* d1, LinkNode *d2) { Person *p1 = (Person*)d1; Person *p2 = (Person*)d2;
if (strcmp(p1->name,p2->name) == 0 && p1->age == p2->age) { return 0; } return -1; } int main() { LinkList * list = Init_LinkList(); Person p1 = { NULL,"aaa",11 }; Person p2 = { NULL,"bbb",12 }; Person p3 = { NULL,"ccc",13 }; Person p4 = { NULL,"ddd",14 }; Person p5 = { NULL,"eee",15 }; Insert_LinkList(list,0,(LinkNode *)&p1); Insert_LinkList(list,0,(LinkNode *)&p2); Insert_LinkList(list,0,(LinkNode *)&p3); Insert_LinkList(list,0,(LinkNode *)&p4); Insert_LinkList(list,0,(LinkNode *)&p5);
Print_LinkList(list, MyPrint);
int ret = Find_LinkList(list, (LinkNode*)&p1, compare); printf("Find:%d\n", ret); printf("Size:%d\n", Size_LinkList(list));
printf("--------------------\n"); Remove_LinkList(list,4);
Print_LinkList(list, MyPrint); FreeSpace_LinkList(list); return 0; }
|