void test4() { LinkNode *ret = NULL; LinkList list; InitLinkList(&list); PushBack(&list, 5); PushBack(&list, 4); PushBack(&list, 3); PushBack(&list, 1); PushBack(&list, 2); PrintList(&list); Erase(&list, 3); PrintList(&list); //Remove(&list, 4); //PrintList(&list); /*ret=FindNode(&list, 3);*/ //if (ret == NULL) //{ // printf("没有找到节点!\n"); //} //else //{ // printf("%d \n", ret->data); //} }
// Ö÷º¯Êý 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(void) { int n1; cin >> n1; int* a1 = new int[n1]; for (int i = 0; i < n1; ++i) cin >> a1[i]; Node* head1 = InitLinkList(a1, n1); int n2; cin >> n2; int* a2 = new int[n2]; for (int i = 0; i < n2; ++i) cin >> a2[i]; Node* head2 = InitLinkList(a2, n2); Node* result = AddList(head1, head2); PrintList(result); return 0; }
void test3() { LinkList list; LinkNode *ret = NULL; InitLinkList(&list); PushBack(&list, 5); PushBack(&list, 4); PushBack(&list, 3); PushBack(&list, 1); PushBack(&list, 2); PrintList(&list); BubbleSort(&list); PrintList(&list); DestoryLinkList(&list); }
void test2() { LinkList list; LinkNode *ret = NULL; InitLinkList(&list); PushBack(&list, 1); PushBack(&list, 2); PushBack(&list, 3); PushBack(&list, 4); PushBack(&list, 5); PrintList(&list); ret = FindNode(&list, 1); Insert(&list, 9, ret); PrintList(&list); }
void test6() { LinkList list; LinkNode *ret = NULL; InitLinkList(&list); PushBack(&list, 3); PushBack(&list, 5); PushBack(&list, 4); PushBack(&list, 2); PushBack(&list, 1); PrintList(&list); //ret = FindNode(&list, 2); //InsertFrontNode(ret, 0); //3 5 4 0 2 1 //PrintList(&list); //ret=FindMidNode(&list); DelKNode(&list, 5); PrintList(&list); DestoryLinkList(&list); }
void test5() { LinkNode *ret = NULL; LinkList list; InitLinkList(&list); PushBack(&list, 1); PushBack(&list, 2); PushBack(&list, 3); PushBack(&list, 4); PushBack(&list, 5); PushBack(&list, 6); PushBack(&list, 7); PushBack(&list, 8); PushBack(&list, 9); PushBack(&list, 10); ret = FindNode(&list, 1); ret = Yuesefu_huan(&list, ret, 2); printf("最后剩下的节点的数据是%d\n", ret->data); }
Node* AddList(Node* head1, Node* head2) { Node* result = NULL; vector<int> sum_array; int step = 0; while (head1 != NULL && head2 != NULL) { int sum = head1->data + head2->data + step; sum_array.push_back(sum % 10); step = sum / 10; head1 = head1->next; head2 = head2->next; } while (head1 != NULL) { int sum = head1->data + step; sum_array.push_back(sum % 10); step = step / 10; head1 = head1->next; } while (head2 != NULL) { int sum = head2->data + step; sum_array.push_back(sum % 10); step = sum / 10; head2 = head2->next; } if (step != 0) sum_array.push_back(step); int len = sum_array.size(); int* a = new int[len]; for (int i = 0; i < len; ++i) a[i] = sum_array[i]; result = InitLinkList(a, len); return result; }
void test1() { LinkList list; InitLinkList(&list); PushBack(&list, 1); PushBack(&list, 2); PushBack(&list, 3); PushBack(&list, 4); PushBack(&list, 5); PopBack(&list); PopBack(&list); PopBack(&list); PrintList(&list); PushFront(&list, 6); PushFront(&list, 7); PushFront(&list, 8); PrintList(&list); PopFront(&list); PrintList(&list); DestoryLinkList(&list); PrintList(&list); }
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; }