From f3123ae31f995ffd1f596e2a3170cc643211713a Mon Sep 17 00:00:00 2001 From: zhilv Date: Fri, 28 Nov 2025 14:24:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(datastructure.test1):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=AD=E6=96=87=E4=B9=B1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataStructure/.gitignore | 2 + DataStructure/test1/实验一.cpp | 240 ++++++++++++++++++--------------- 2 files changed, 130 insertions(+), 112 deletions(-) create mode 100644 DataStructure/.gitignore diff --git a/DataStructure/.gitignore b/DataStructure/.gitignore new file mode 100644 index 0000000..00ba5c6 --- /dev/null +++ b/DataStructure/.gitignore @@ -0,0 +1,2 @@ +**/*.exe +**/*.pdb \ No newline at end of file diff --git a/DataStructure/test1/实验一.cpp b/DataStructure/test1/实验一.cpp index 923b85f..7e85216 100644 --- a/DataStructure/test1/实验一.cpp +++ b/DataStructure/test1/实验一.cpp @@ -4,176 +4,191 @@ typedef struct LNode { - int data; // ������ - struct LNode *next; // ָ���� -} LNode, *LinkList; // LinkListΪָ��LNode���͵�ָ������ + int data; // Êý¾ÝÓò + struct LNode *next; // Ö¸ÕëÓò +} LNode, *LinkList; // LinkListΪָÏòLNodeÀàÐ͵ÄÖ¸ÕëÀàÐÍ -void chushihua(LinkList &L, LinkList &M, LinkList &N, LinkList &H) // ��ʼ���ĸ�����L��M��N��H +void chushihua(LinkList &L, LinkList &M, LinkList &N, LinkList &H) // ³õʼ»¯ËĸöÁ´±íL¡¢M¡¢N¡¢H { - // todo list - L = (LinkList)malloc(sizeof(LNode)); - M = (LinkList)malloc(sizeof(LNode)); - N = (LinkList)malloc(sizeof(LNode)); - H = (LinkList)malloc(sizeof(LNode)); - L->next = NULL; // ֱ���ÿգ������ж� + // 1.³õʼ»¯Á´±í£¬½«¸÷Á´±íÍ·½ÚµãµÄnextÉèΪNULL + L->next = NULL; M->next = NULL; N->next = NULL; H->next = NULL; + printf("Á´±í³õʼ»¯Íê³É\n"); } -void Emp(LinkList &L) // �����L�Ƿ�Ϊ�ձ� + +void Emp(LinkList &L) // ÅжÏÁ´±íLÊÇ·ñΪ¿Õ±í { - // if (//todo list) + // 2.ÅжÏÁ´±íÊÇ·ñΪ¿Õ£¨Í·½ÚµãµÄnextÊÇ·ñΪNULL£© if (L->next == NULL) - printf("����Ϊ�ձ���\n"); + printf("Á´±íΪ¿Õ±í¡£\n"); else - printf("����Ϊ�ǿձ���\n"); + printf("Á´±íΪ·Ç¿Õ±í¡£\n"); } void Length(LinkList L) -{ // �����������L������Ԫ�ظ��� - LNode *p; // ������ʱ����p - p = L->next; // pָ���һ�����(��Ԫ���) +{ // Çó±í³¤£¬·µ»ØLÖÐÊý¾ÝÔªËØ¸öÊý + LNode *p; // ÉêÇëÁÙʱ±äÁ¿p + p = L->next; // pÖ¸ÏòµÚÒ»¸ö½áµã(Ê×Ôª½áµã) int length = 0; - // todo list //����������,ͳ�ƽ���� + // 3.±éÀúÁ´±íͳ¼Æ½ÚµãÊýÁ¿ while (p != NULL) { length++; p = p->next; } - - printf("����������%d\n", length); + printf("Á´±í³¤¶ÈΪ£º%d\n", length); } -// ��ʾ����L������Ԫ�� -void xianshi(LinkList &L) -{ - LNode *p; // ������ʱ����p //LinkList p; - p = L; - while (p->next != NULL) - { - printf("%4d", p->next->data); - p = p->next; - } - printf("\n"); // ���ӻ��У����ڲ鿴 -} - -// 1��������������������������L���n������������ʱ���������������ԣ���С���󣩡� +// 1¡¢½¨Á¢µÝÔöÓÐÐòÁ´±í£ºÏòÁ´±íLÖвåÈën¸öÕûÊý£¬²åÈëʱ±£³ÖÁ´±íµÄÓÐÐòÐÔ£¨´ÓСµ½´ó£©¡£ void charu_1(LinkList &L, int n) { LNode *q, *p; for (int i = 1; i <= n; i++) { - p = L; // ��ÿ��ѭ����ʼʱ����pָ��������ͷ�ڵ�L - q = (LinkList)malloc(sizeof(LNode)); // Ϊ�µĽڵ�����ڴ棬����qָ������ڴ� - printf("�������%d����������ֵ", i); - scanf("%d", &q->data); // �������ֵ�洢��qָ��Ľڵ��data�ֶ��� - q->next = NULL; // ���½ڵ��nextָ������ΪNULL����ʾ�½ڵ㵱ǰ��ָ���κνڵ㡣 + p = L; // ÔÚÿ´ÎÑ­»·¿ªÊ¼Ê±£¬½«pÖ¸ÏòÁ´±íµÄÍ·½ÚµãL + q = (LinkList)malloc(sizeof(LNode)); // ΪеĽڵã·ÖÅäÄڴ棬²¢½«qÖ¸ÏòÕâ¿éÄÚ´æ + printf("ÇëÊäÈëµÚ%d¸öÕûÊýÊýµÄÖµ", i); + scanf("%d", &q->data); // ½«ÊäÈëµÄÖµ´æ´¢ÔÚqÖ¸ÏòµÄ½ÚµãµÄdata×Ö¶ÎÖÐ + q->next = NULL; // ½«Ð½ڵãµÄnextÖ¸ÕëÉèÖÃΪNULL£¬±íʾнڵ㵱ǰ²»Ö¸ÏòÈκνڵ㡣 - // ���Ҳ���λ�� - while (p->next != NULL && p->next->data < q->data) + if (p->next == NULL) // Èç¹ûÁ´±íΪ¿Õ£¬Ö±½Ó²åÈë { - p = p->next; // �ƶ�����һ���ڵ� + // 4.¿ÕÁ´±íʱֱ½Ó²åÈëнڵã + p->next = q; + } + else // ·Ç¿ÕÁ´±í£¬²éÕÒ²åÈëλÖà + { + while (p->next != NULL && p->next->data < q->data) + { + // 5.ÒÆ¶¯pÖ¸ÕëÕÒµ½²åÈëλÖà + p = p->next; + } + // 6.²åÈëнڵã + q->next = p->next; + p->next = q; } - // �����½ڵ� - q->next = p->next; - p->next = q; } } -// 2���ֽ⣺������L�е�Ԫ�ط�Ϊ������ż����������M��N�����ֱ���ʾ���ǡ� +// ÏÔʾÁ´±íLµÄËùÓÐÔªËØ +void xianshi(LinkList &L) +{ + LNode *p; // ÉêÇëÁÙʱ±äÁ¿p + p = L; + // 7.ÅжÏÁ´±íÊÇ·ñΪ¿Õ + if (p->next == NULL) + { + printf("Á´±íΪ¿Õ"); + } + while (p->next != NULL) + { + printf("%4d", p->next->data); + p = p->next; + } + printf("\n"); +} + +// 2¡¢·Ö½â£º½«Á´±íLÖеÄÔªËØ·ÖÎªÆæÊýºÍżÊýÁ½¸öÁ´±íMºÍN£¬²¢·Ö±ðÏÔʾËüÃÇ¡£ void fenbiao(LinkList &L, LinkList &M, LinkList &N) { LNode *j, *o, *p, *temp; p = L; while (p->next != NULL) { - temp = p->next; // ���浱ǰ�ڵ� - p->next = temp->next; // ��ǰ�ƶ�p��next����ֹ���� + // 8.ÒÆ¶¯pÖ¸Õëµ½ÏÂÒ»¸ö½Úµã + temp = p->next; + p->next = temp->next; // Ìáǰ¶Ï¿ªÔ­Á´±íÁ¬½Ó£¬·ÀÖ¹±éÀú»ìÂÒ - if (temp->data % 2 == 0) // ż��Ԫ�أ�ǰ�巨��M + if (temp->data % 2 == 0) // żÊýÔªËØ£¬Ç°²å·¨²åÈëżÊýÁ´±í { - o = (LinkList)malloc(sizeof(LNode)); - o->data = temp->data; - o->next = M->next; - M->next = o; + o = temp; + // 9.ǰ²å·¨²åÈëżÊýÁ´±í + o->next = N->next; + N->next = o; } - else // ����Ԫ�أ�ǰ�巨��N + else // ÆæÊýÔªËØ£¬Ç°²å·¨²åÈëÆæÊýÁ´±í { - j = (LinkList)malloc(sizeof(LNode)); - j->data = temp->data; - j->next = N->next; - N->next = j; + j = temp; + // 10.ǰ²å·¨²åÈëÆæÊýÁ´±í + j->next = M->next; + M->next = j; } - free(temp); // �ͷ�ԭ�ڵ��ڴ� } - printf("���Ϊ:"); - xianshi(N); // ����������Ӧ�ô����N�� - printf("ż��Ϊ:"); - xianshi(M); // ������ż��Ӧ�ô����M�� + printf("Ææ±íΪ:"); + xianshi(M); + printf("ż±íΪ:"); + xianshi(N); } -// 3���ϲ�һ���ݼ�����������������J��ż������O�ϲ�Ϊһ���µ�����H���ϲ�ʱ����Ԫ�ص������ԡ� +// 3¡¢ºÏ²¢Ò»¸öµÝ¼õÁ´±í£º½«ÆæÊýÁ´±íJºÍżÊýÁ´±íOºÏ²¢ÎªÒ»¸öеÄÁ´±íH£¬ºÏ²¢Ê±±£³ÖÔªËØµÄÓÐÐòÐÔ¡£ void hebiao(LinkList &J, LinkList &O, LinkList &H) { - LNode *p, *q, *t, *m; - p = J->next; // ָ����Ԫ�ڵ� - q = O->next; - m = H; // m�൱��βָ�룬��ʼָ��ͷ�ڵ� + LNode *p, *q, *t; + p = J->next; // Ö¸ÏòÆæÊýÁ´±íµÚÒ»¸öÔªËØ + q = O->next; // Ö¸ÏòżÊýÁ´±íµÚÒ»¸öÔªËØ + LNode *m = H; // ºÏ²¢Á´±íµÄβָÕë - // ���Hԭ������ - H->next = NULL; - - while (p != NULL && q != NULL) // �ж����ż���������ݽ�� + while (p != NULL && q != NULL) // ÆæºÍż±í¶¼ÓÐÊý¾Ý½áµã { - if (p->data > q->data) // ��������ż����ȡ���� + if (p->data > q->data) // ÆæÊý´óÓÚżÊý£¬È¡ÆæÊý { t = (LinkList)malloc(sizeof(LNode)); t->data = p->data; t->next = NULL; - m->next = t; // � - m = t; // ����βָ�� - p = p->next; // �ƶ���������ָ�� + // 11.β²å·¨²åÈëºÏ²¢Á´±í + m->next = t; + m = t; + p = p->next; // ÒÆ¶¯ÆæÊýÁ´±íÖ¸Õë } - else // ȡż�� + else // żÊý´óÓÚµÈÓÚÆæÊý£¬È¡Å¼Êý { t = (LinkList)malloc(sizeof(LNode)); t->data = q->data; t->next = NULL; - m->next = t; // � - m = t; // ����βָ�� - q = q->next; // �ƶ�ż������ָ�루������ԭ��������ƶ���p�� + // 12.β²å·¨²åÈëºÏ²¢Á´±í + m->next = t; + m = t; + q = q->next; // ÒÆ¶¯Å¼ÊýÁ´±íÖ¸Õë } } - // ����ʣ��������ڵ� - while (p != NULL) + if (p == NULL) // ÆæÊýÁ´±íÏȱéÀúÍê³É£¬´¦ÀíÊ£ÓàżÊý { - t = (LinkList)malloc(sizeof(LNode)); - t->data = p->data; - t->next = NULL; - m->next = t; - m = t; - p = p->next; + while (q != NULL) + { + t = (LinkList)malloc(sizeof(LNode)); + t->data = q->data; + t->next = NULL; + // 13.β²åÊ£ÓàżÊý½Úµã + m->next = t; + m = t; + q = q->next; + } } - // ����ʣ���ż���ڵ� - while (q != NULL) + if (q == NULL) // żÊýÁ´±íÏȱéÀúÍê³É£¬´¦ÀíÊ£ÓàÆæÊý { - t = (LinkList)malloc(sizeof(LNode)); - t->data = q->data; - t->next = NULL; - m->next = t; - m = t; - q = q->next; // ������ԭ��������ƶ���p + while (p != NULL) + { + t = (LinkList)malloc(sizeof(LNode)); + t->data = p->data; + t->next = NULL; + // 14.β²åÊ£ÓàÆæÊý½Úµã + m->next = t; + m = t; + p = p->next; + } } - printf("�Ӵ�С�ĵ�����Ϊ��"); - xianshi(H); // ��ʾ�ϱ�H + printf("´Ó´óµ½Ð¡µÄµ¥Á´±íΪ£º"); + xianshi(H); // ÏÔʾºÏ±íH } int main() { - // �����½����Ϊͷ��㣬��ͷָ��ֱ�ָ���ͷ��� + // Éú³Éнáµã×÷Ϊͷ½áµã£¬ÓÃÍ·Ö¸Õë·Ö±ðÖ¸Ïò¸÷Í·½áµã LinkList head = (LinkList)malloc(sizeof(LNode)); LinkList ji = (LinkList)malloc(sizeof(LNode)); LinkList ou = (LinkList)malloc(sizeof(LNode)); @@ -181,20 +196,20 @@ int main() int choose = -1, n; printf("*********************************************\n"); - printf("********** ʵ��һ *******\n"); + printf("********** ʵÑéÒ» *******\n"); printf("*********************************************\n"); - printf("********** 1.��ʼ�������� *******\n"); - printf("********** 2.������������ *******\n"); - printf("********** 3.�ֳ���/ż������ *******\n"); - printf("********** 4.�ϲ��ɵݼ������� *******\n"); - printf("********** 5.��ʾ������(����)���������� *******\n"); - printf("********** 6.���������� *******\n"); - printf("********** 7.�жϵ������Ƿ�Ϊ�� *******\n"); - printf("********** 0.�˳� *******\n"); + printf("********** 1.³õʼ»¯µ¥Á´±í *******\n"); + printf("********** 2.½¨Á¢µÝÔöÁ´±í *******\n"); + printf("********** 3.·Ö³ÉÆæ/żÁ½Á´±í *******\n"); + printf("********** 4.ºÏ²¢³ÉµÝ¼õµ¥Á´±í *******\n"); + printf("********** 5.ÏÔʾ½¨Á¢µÄ(µÝÔö)µ¥Á´±íÕûÌå *******\n"); + printf("********** 6.Çóµ¥Á´±í³¤¶È *******\n"); + printf("********** 7.Åжϵ¥Á´±íÊÇ·ñΪ¿Õ *******\n"); + printf("********** 0.Í˳ö *******\n"); printf("*********************************************\n"); while (choose) { - printf("���������ѡ���\n"); + printf("ÇëÊäÈëÄãµÄÑ¡ÔñÏ\n"); scanf("%d", &choose); switch (choose) { @@ -202,12 +217,12 @@ int main() chushihua(head, ji, ou, he); break; case 2: - printf("��������Ҫ�����������ĸ�����\n"); + printf("ÇëÊäÈëÄãÒª²åÈëÕýÕûÊýµÄ¸öÊý£º\n"); scanf("%d", &n); charu_1(head, n); break; case 3: - fenbiao(head, ou, ji); + fenbiao(head, ji, ou); break; case 4: hebiao(ji, ou, he); @@ -226,4 +241,5 @@ int main() break; } } -} \ No newline at end of file + return 0; +}