// Ö÷º¯Êý int main(void) { int pos; printf("TEST 1...\n"); LinkList *plist = CreateLinkList( ); // 创建单链表 for(int pos = 0; pos < LIST_SIZE; pos++) // 循环向单链表中插入数据 { InsertNode(plist, pos, pos + 1); } ShowList(plist); // 插入结束后显示单链表的信息 DeleteNode(plist, 0); // 删除第一个元素 ShowList(plist); DeleteNode(plist, 1); // 删除第二个元素 ShowList(plist); ClearLinkList(plist); // 将单链表清空 ShowList(plist); DestroyLinkList(plist); // 将单链表销毁 plist = NULL; printf("\n\nTEST 2...\n"); LinkList list; InitLinkList(&list); // 初始化单链表 for(int pos = 0; pos < LIST_SIZE; pos++) // 训话向单链表中插入数据 { InsertNode(&list, pos, pos + 1); } ShowList(&list); // 显示单链表 ClearLinkList(&list); // 清空单链表 // FinitLinkList(&list); // ERROR== list->m_head->m_next == NULL ShowList(&list); printf("\n\nTEST 3...\n"); LinkListNode *prevNode = &list; // 带头结点的单链表头指针是list->m_next LinkListNode *addNode = NULL; for(int pos = 0; pos < LIST_SIZE; pos++) { if((addNode = AddNode(&list, prevNode, pos + 1)) != NULL) { prevNode = addNode; } } ShowList(&list); while(IsEmptyLinkList(&list) != true) // 循环删除单链表中的数据 { DeleteCurrNode(&list, list.m_next); } ShowList(&list); // 显示单链表 return EXIT_SUCCESS; }
int main() { int len,choose,i; LinkList L; ElemType insert; InitLinkList(L); printf("--请输入要创建顺序表长度: "); scanf("%d",&len); printf("--请依次输入员工的 \n姓名 工号 职务\n"); CreateLinkList(L,len); printf("--显示所有员工信息如下\n姓名 工号 职务\n"); DisplayLinkList(L); while(true) { printf("\n\n***********************************\n--菜单--\n--· 1 插入员工信息\n--· 2 删除员工信息\n--· 3 显示所有员工信息\n--· 4 销毁所有员工数据\n***********************************\n请选择: "); scanf("%d",&choose); switch(choose){ case 1:{ printf("--请依次输入员工的\n姓名 工号 职务\n"); scanf("%s %s %s",insert.name,insert.id,insert.job);//name id job printf(LinkListInsert_L(L,1,insert)==1?"--存入成功\n":"--存入失败 001\n");// break; } case 2:{ printf("--请输入需要删除员工的\n姓名 工号 职务\n"); scanf("%s %s %s",insert.name,insert.id,insert.job);//name id job int index = locateelem(L,insert); if(index>0)//第一个元素位置为 1 { printf("\n成功查询到员工信息--位置:%2d\n",index); i = LinkListDelete_L(L,index);//删除第 i 个节点 printf("%-16s\n",(i == 1?"\n删除成功\n":"\n删除失败 请检查位置脚标是否合理\n")); }else { printf("\n未查询到员工信息--位置:%2d\n",index); } break; } case 3:{ printf("\n员工信息如下\n******************************************************\n"); DisplayLinkList(L); printf("\n******************************************************\n"); break; } case 4:{ ClearLinkList(L); printf("\n******************数据销毁 程序结束*******************\n"); exit(OVERFLOW); } default:printf("\n请输入正确的选项: "); } printf("#####按任意键继续..#####"); getchar(); getchar(); printf("\n-------------------我是分割线---------------------------\n"); printf("-------------------分割线我是---------------------------\n"); printf("-------------------分割线是我---------------------------\n"); } return 0; }