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 62 63
| #include<stdio.h> #include"LinkList.h"
typedef struct PERSON { char name[20]; int age; int score; }Person;
int Equal(void* pv1, void* pv2) { Person* p1 = (Person *)pv1; Person* p2 = (Person *)pv2;
if (strcmp(p1->name, p2->name) == 0 && p1->age == p2->age) { return 0; } else { return 1; } } void print(void* pv) { Person *p1 = (Person *)pv; printf("%s,%d,%d\n", p1->name, p1->age, p1->score); } int main() {
Person p1 = { "aaa",10,100 }; Person p2 = { "bbb",11,111 }; Person p3 = { "ccc",12,20 }; Person p4 = { "ddd",13,150 }; Person p5 = { "eee",14,120 };
LinkList *list = Init_LinkList(); Insert_LinkList(list,0,&p1); Insert_LinkList(list,1,&p2); Insert_LinkList(list,2,&p3); Insert_LinkList(list,3,&p4); Insert_LinkList(list,4,&p5);
Print_LinkList(list, print); printf("%d\n", Find_LinkList(list, &p4, Equal)); LinkNode *ret = (LinkNode*)Front_LinkList(list); printf("%s,%d,%d\n",((Person*)(ret->data))->name, ((Person*)(ret->data))->age, ((Person*)(ret->data))->score);
printf("size:%d \n", Size_LinkList(list));
RemoveByPos_LinkList(list, 4); printf("---------------"); printf("size:%d \n", Size_LinkList(list)); Print_LinkList(list, print); FreeSpace_LinkList(list); return 0; }
|