From 50f26216473430d4e52e776f251f2b3e55ad7596 Mon Sep 17 00:00:00 2001 From: xingyou wu <3050128610@qq.com> Date: Sat, 15 Mar 2025 11:32:13 +0800 Subject: [PATCH] some update --- test100.cpp | 3 -- test99-1.cpp | 134 --------------------------------------------------- 2 files changed, 137 deletions(-) delete mode 100644 test99-1.cpp diff --git a/test100.cpp b/test100.cpp index cde11ee..a98d9bb 100644 --- a/test100.cpp +++ b/test100.cpp @@ -2,8 +2,5 @@ using namespace std; int main(){ - int n; - n++; - cout << n << endl; return 0; } \ No newline at end of file diff --git a/test99-1.cpp b/test99-1.cpp deleted file mode 100644 index 46076da..0000000 --- a/test99-1.cpp +++ /dev/null @@ -1,134 +0,0 @@ -#include -using namespace std; - -typedef struct LNode{ - int data; - struct LNode *next; -}LNode, *LinkList; - -bool InitList(LinkList &L){ - L = (LNode *)malloc(sizeof(LNode)); // 带头节点 - if(L == NULL) return false; - L->next = NULL; - return true; -} - -void InputList(LinkList &L){ - int x; cin>>x; - LinkList tail = L; - while(x != -99999){ // 输入 -99999 结束输入 - LNode *newNode = (LNode*)malloc(sizeof(LNode)); - newNode->data = x; newNode->next = NULL; - tail->next = newNode; - tail = newNode; - cin >> x; - } -} - -void PrintList(LinkList &L){ - LinkList p = L->next; - while(p != NULL){ - cout << p->data << ",\n"[p->next == NULL]; - p = p->next; - } -} - -LinkList p1, p2, p3, tmp; -void MergeList1(LinkList &L1, LinkList &L2, LinkList &L3){ - // 升序合并并去重 - p1 = L1->next; p2 = L2->next; - L3 = p3 = L1; - while(p1 && p2){ - if(p1->data < p2->data){ - p3->next = p1; p3 = p1; p1 = p1->next; - }else if(p2->data < p1->data){ - p3->next = p2; p3 = p2; p2 = p2->next; - }else{ - p3->next = p1; p3 = p1; p1 = p1->next; - tmp = p2->next; delete p2; p2 = tmp; - } - } - p3->next = p1?p1:p2; - delete L2; -} - -void MergeList2(LinkList &L1, LinkList &L2, LinkList &L3){ - // 降序合并 - p1 = L1->next; p2 = L2->next; - L3 = L1; - L3->next = NULL; - while(p1 || p2){ - if(!p1) { tmp = p2; p2 = p2->next; } - else if(!p2) { tmp = p1; p1 = p1->next; } - else if(p1->data <= p2->data) { tmp = p1; p1 = p1->next; } - else { tmp = p2; p2 = p2->next; } - - tmp->next = L3->next; L3->next = tmp; - } - delete L2; -} - -void MixList(LinkList &L1, LinkList &L2, LinkList &L3){ - // 两链表相交 - p1 = L1->next; p2 = L2->next; - L3 = p3 = L1; - while(p1 && p2){ - if(p1->data == p2->data){ - p3->next = p1; p3 = p1; p1 = p1->next; - tmp = p2; p2 = p2->next; delete tmp; - }else if(p1->data < p2->data){ - tmp = p1; p1 = p1->next; delete tmp; - }else{ - tmp = p2; p2 = p2->next; delete tmp; - } - } - while(p1) { tmp = p1; p1 = p1->next; delete tmp; } - while(p2) { tmp = p2; p2 = p2->next; delete tmp; } - - p3->next = NULL; - delete L2; -} - -void DiffList(LinkList &L1, LinkList &L2, int &n){ - // 两链表相差 - p1 = L1->next; p2 = L2->next; - p3 = L1; - while(p1 && p2){ - if(p1->data < p2->data){ - p3 = p1; p1 = p1->next; n++; - }else if(p1->data > p2->data){ - p2 = p2->next; - }else{ - p3->next = p1->next; - tmp = p1; p1 = p1->next; delete tmp; - } - } -} - -int main(){ - LinkList L1, L2, L3; InitList(L1); InitList(L2); InitList(L3); - InputList(L1); InputList(L2); // PrintList(L1); PrintList(L2); // 初始化并输入输出两个链表 - MergeList1(L1, L2, L3); - cout << "两链表升序合并并去重: "; PrintList(L3); - - LinkList L4, L5, L6; InitList(L4); InitList(L5); InitList(L6); - InputList(L4); InputList(L5); // PrintList(L4); PrintList(L5); // 初始化并输入输出两个链表 - MergeList2(L4, L5, L6); - cout << "两链表降序合并: "; PrintList(L6); - - LinkList L7, L8, L9; InitList(L7); InitList(L8); InitList(L9); - InputList(L7); InputList(L8); - MixList(L7, L8, L9); - cout << "两链表相交: "; PrintList(L9); - - LinkList L10, L11; InitList(L10); InitList(L11); - InputList(L10); InputList(L11); int n = 0; - DiffList(L10, L11, n); - cout << "两链表相差: "; PrintList(L10); - cout << "元素个数位: " << n << endl; - return 0; -} -/* test samples -1 3 5 7 9 13 15 -99999 -2 4 6 8 10 11 13 14 15 -99999 -*/ \ No newline at end of file