📄 test.c
字号:
#include <stdio.h>#include <string.h>#include "link.h"C_CLASS LINKLIST list;typedef struct { char sno[7];
char sname[32]; int age; }STU;STU stu[3]={ {"001","张三",20}, {"002","李四",22}, {"003","王五",21}};int condition_sno(void * data,char *sno){
STU * stu;
stu=(STU *)data; if (strcmp(stu->sno,sno)==0) { return 0; } else return 1;}int main(){ int i; NODE* n=NULL; STU* s=NULL; int index; link_init(&list); for (i=0; i<sizeof(stu)/sizeof(STU); i++) { list.insert_rear(&list,(void *)&stu[i],sizeof(STU)); } printf("学生信息表\n"); for (i=1; i<=list.count; i++) { n=list.get_node_by_index(&list,i); if (n!=NULL) { s=(STU*)n->data; } if (s!=NULL) { printf("SNO=%s\tSNAME=%s\tSAGE=%d\n",s->sno,s->sname,s->age); } } printf("\n"); n=list.get_node_by_key(&list,"002",(int (*)(void*,void*))condition_sno); if (n!=NULL) { s = (STU*)n->data; } printf("SNO=002学生信息\n"); if (s!=NULL) { printf("SNO=%s\tSNAME=%s\tSAGE=%d\n",s->sno,s->sname,s->age); } printf("\n"); index=list.get_index_by_key(&list,"004",(int (*)(void*,void*))condition_sno); printf("SNO=002学生信息下标: %d\n",index); printf("\n"); list.delete_node_by_key(&list,"002",(int (*)(void*,void*))condition_sno); printf("删除SNO=2号学生后学生信息表\n"); for (i=1; i<=list.count; i++) { n=list.get_node_by_index(&list,i); if (n!=NULL) { s=(STU*)n->data; } if (s!=NULL) { printf("SNO=%s\tSNAME=%s\tSAGE=%d\n",s->sno,s->sname,s->age); } } printf("\n"); list.del(&list); printf("删除链表结点但不删除头结点后链表个数:%d\n",list.count); printf("头结点的地址=%d\n",list.head); printf("\n"); list.clear(&list); printf("清除链表结点后链表个数:%d\n",list.count); printf("头结点的地址=%d\n",list.head); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -