有序顺序表的合并
- 格式:doc
- 大小:79.00 KB
- 文档页数:3
设计两个有序单链表的合并排序算法有序单链表的合并排序,是一种高效的排序算法,可以在较短的时间内对大量数据进行排序。
这种排序算法的核心在于将两个有序的单链表合并成一个有序的单链表,然后再对整个链表进行排序。
合并排序算法的基本原理是分治法。
将需要排序的数组不断地分解成两个子数组,直到每个子数组只包含一个元素为止。
然后再将这些子数组两两合并,直到整个数组被合并成一个有序的数组为止。
这里介绍两个有序单链表的合并排序算法,它们分别是迭代算法和递归算法。
1. 迭代算法迭代算法是一种通用的算法,它的思路是利用循环结构来重复执行一段相同或相似的代码,从而解决一类问题。
对于有序单链表的合并排序,迭代算法的基本思路是将两个有序单链表的元素依次比较,然后将较小的元素加入到新的链表中,直到两个链表中的元素全部被加入到新链表中为止。
以下是迭代算法的具体实现过程:```// 合并两个有序单链表Node* mergeList(Node* head1, Node* head2) { // 新建一个头结点Node* dummy = new Node(-1);// 定义两个指针,分别指向两个链表的头结点 Node* p = head1;Node* q = head2;// 定义一个指针,指向新链表的最后一个节点 Node* curr = dummy;// 循环比较两个链表中的元素while (p != nullptr && q != nullptr) {if (p->val <= q->val) {curr->next = p;p = p->next;} else {curr->next = q;q = q->next;}curr = curr->next;}// 将剩余的元素加入到新链表中curr->next = p != nullptr ? p : q;// 返回新链表的头结点return dummy->next;}// 归并排序Node* mergeSort(Node* head) {if (head == nullptr || head->next == nullptr) {return head;}// 定义两个指针,一个快指针每次走两步,一个慢指针每次走一步 Node* slow = head;Node* fast = head->next;while (fast != nullptr && fast->next != nullptr) {slow = slow->next;fast = fast->next->next;}// 将链表分成两部分Node* head1 = head;Node* head2 = slow->next;slow->next = nullptr;// 分别对两部分链表进行归并排序head1 = mergeSort(head1);head2 = mergeSort(head2);// 合并两个有序单链表return mergeList(head1, head2);}```2. 递归算法递归算法的思想是将一个大问题分解成若干个小问题,然后逐个解决这些小问题,最终得到大问题的解决方案。
南昌大学实验报告学生姓名:李木子学号:专业班级:软工实验类型:□验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称两个有序顺序表的结合二、实验目的顺序表的创建.实现顺序表的追加.实现顺序表的显示.两顺序表的合并三、实验基本原理四、主要仪器设备及耗材电脑,五、实验步骤******************************************** 顺序表的创建 ** .实现顺序表的追加 ** .实现顺序表的显示 ** .两顺序表的合并 ********************************************<><>;************************************* 顺序表结构体的定义 ************************************* {[];;};************************************ * 函数声明 * ************************************ (*);(*);();();(*);(*);(***);************************************ * 顺序表的初始化函数 * ************************************ (*){>;}************************************ * 顺序表的追加函数 * ************************************ (*){(>){("\顺序表是满的!");();}>[>];>>;}。
有序链表的合并实验总结有序链表的合并是计算机科学中常见的操作之一,它在许多算法和数据结构中都有广泛的应用。
本文将对有序链表的合并进行实验总结,并探讨其应用和实现方法。
我们需要了解什么是有序链表。
有序链表是一种数据结构,它按照某种规则将元素按顺序排列在链表中。
在有序链表中,每个节点都包含一个值和一个指向下一个节点的指针。
这种数据结构的优点是插入和删除操作相对容易,但查找操作的效率较低。
因此,在某些场景下,有序链表比其他数据结构更适合。
有序链表的合并就是将两个有序链表合并成一个新的有序链表。
合并的过程是将两个链表中的节点逐个比较,并按照大小顺序插入到新链表中。
具体步骤如下:1. 创建一个新链表和两个指针,分别指向两个待合并的链表的头节点。
2. 比较两个指针所指节点的值的大小,将较小的节点插入到新链表中,并将指针向后移动一位。
3. 重复步骤2,直到有一个链表的指针为空。
4. 将另一个链表剩余的节点直接插入到新链表的末尾。
在实验过程中,我们可以编写一个简单的函数来实现有序链表的合并。
以下是一个示例代码:```pythonclass ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextdef mergeTwoLists(l1, l2):dummy = ListNode(0) # 创建一个虚拟节点作为新链表的头节点curr = dummy # 创建一个指针指向新链表的当前位置while l1 and l2:if l1.val < l2.val:curr.next = l1l1 = l1.nextelse:curr.next = l2l2 = l2.nextcurr = curr.next# 将剩余的节点直接插入到新链表的末尾if l1:curr.next = l1if l2:curr.next = l2return dummy.next # 返回新链表的头节点```通过上述代码,我们可以在O(n)的时间复杂度内完成两个有序链表的合并,其中n为两个链表的总长度。
头歌桂林电子科技大学数据结构答案1、线性结构中数据元素之间是()关系。
[单选题] *A、一对多B、多对多C、多对一D、一对一(正确答案)2、在计算机中存储数据时,通常不仅要存储各数据元素的值,而且要存储()。
[单选题] *A、数据的处理方法B、数据元素的类型C、数据元素之间的关系(正确答案)D、数据的存储方法3、计算机算法指的是()。
[单选题] *A、计算方法B、排序方法C、求解问题的有限运算序列(正确答案)D、调度方法4、算法分析的目的是()。
[单选题] *A、找出数据结构的合理性B、研究算法中的输入和输出的关系C、分析算法的效率以求改进(正确答案)D、分析算法的易懂性和文档性5、某算法的时间复杂度为O(n²),表明该算法的()。
[单选题] *A、问题规模是n²B、执行时间等于n²C、执行时间与n²成正比(正确答案)D、问题规模与n²成正比6、线性表是()。
[单选题] *A、一个有限序列,可以为空(正确答案)B、一个有限序列,不可以为空C、一个无限序列,可以为空D、一个无限序列,不可以为空7、在n个元素的顺序表中,算法的时间复杂度是O(1)的操作是()。
[单选题] *A、访问第i个元素(2≤i≤n)及其前驱元素(正确答案)B、在第i(1≤i≤n)个元素后插入一个新元素C、删除第i个元素(1≤i≤n)D、将n个元素从小到大排序8、将两个分别含有m、n个元素的有序顺序表归并成一个有序顺序表,对应算法的时间复杂度是()。
这里MIN表示取最小值。
[单选题] *A、O(n)C、O(m+n)(正确答案)D、O(MIN(m , n))9、线性表的链式存储结构和顺序存储结构相比,其优点是()。
[单选题] *A、所有的操作算法实现简单B、便于随机存取C、便于插入和删除元素(正确答案)D、节省存储空间10、设线性表中有n个元素,以下运算中,()在单链表上实现要比在顺序表上实现效率更高。
将两个有序顺序表合并成⼀个新的有序顺序表#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define MaxSize 50typedef struct{int data[MaxSize];int length;}SqList;void ListInsert(SqList *L,int i,int e){int j;if(i<1||i>L->length+1)exit(-1);if(L->length>=MaxSize)exit(-1);for(j=L->length;j>=i;j--)L->data[j]=L->data[j-1];L->data[i-1]=e;L->length++;}void DispList(SqList *L){int i;for(i=0;i<L->length;i++)printf("%d ",L->data[i]);printf("\n");}void Exchange(SqList *A,SqList *B,SqList *C){int i=0,j=0,k=0;while(i<A->length&&j<B->length){if(A->data[i]<B->data[j])C->data[k++]=A->data[i++];else if(A->data[i]>B->data[j])C->data[k++]=B->data[j++];}while(i<A->length)C->data[k++]=A->data[i++];while(j<B->length)C->data[k++]=B->data[j++];C->length=k;}void main(){SqList *A,*B,*C;A=(SqList*)malloc(sizeof(SqList));A->length=0;B=(SqList*)malloc(sizeof(SqList));B->length=0;C=(SqList*)malloc(sizeof(SqList));C->length=0;ListInsert(A,1,1);ListInsert(A,2,3);ListInsert(A,3,5);ListInsert(A,4,7);ListInsert(A,5,9);ListInsert(B,1,2);ListInsert(B,2,4);ListInsert(B,3,6);ListInsert(B,4,8);ListInsert(B,5,10);ListInsert(B,6,12);Exchange(A,B,C);printf("顺序表A:");DispList(A);printf("顺序表B:");DispList(B);printf("顺序表C:");DispList(C);}。
PTA两个有序链表序列的合并6-5 两个有序链表序列的合并 (15 分)本题要求实现⼀个函数,将两个链表表⽰的递增整数序列合并为⼀个⾮递减的整数序列。
函数接⼝定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node {ElementType Data; /* 存储结点数据 */PtrToNode Next; /* 指向下⼀个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */L1和L2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Merge要将L1和L2合并为⼀个⾮递减的整数序列。
应直接使⽤原序列中的结点,返回归并后的带头结点的链表头指针。
裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node {ElementType Data;PtrToNode Next;};typedef PtrToNode List;List Read(); /* 细节在此不表 */void Print( List L ); /* 细节在此不表;空链表将输出NULL */List Merge( List L1, List L2 );int main(){List L1, L2, L;L1 = Read();L2 = Read();L = Merge(L1, L2);Print(L);Print(L1);Print(L2);return 0;}/* 你的代码将被嵌在这⾥ */输⼊样例:31 3 552 4 6 8 10输出样例:1 2 3 4 5 6 8 10NULLNULL作者: DS课程组单位: 浙江⼤学时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KB1 List Merge( List L1, List L2 ){2 List L=(List)malloc(sizeof(struct Node));3 List p=L;4 List pa=L1->Next;5 List pb=L2->Next;6while(pa&&pb){7if(pa->Data<=pb->Data){8 p->Next=pa;9 p=pa;10 pa=pa->Next;11 }12else{13 p->Next=pb;14 p=pb;15 pb=pb->Next;16 }17 }18 p->Next=pa?pa:pb;19 L1->Next=NULL;20 L2->Next=NULL;21return L;22 }。
南昌大学实验报告学生姓名:李木子学号:8000113146 专业班级:软工133 实验类型:□验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称两个有序顺序表的结合二、实验目的顺序表的创建1.实现顺序表的追加2.实现顺序表的显示3.两顺序表的合并三、实验基本原理四、主要仪器设备及耗材电脑,VC6.0五、实验步骤/*******************************************//* 顺序表的创建 *//* 1.实现顺序表的追加 *//* 2.实现顺序表的显示 *//* 3.两顺序表的合并 *//*******************************************/#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef int datatype;/************************************//* 顺序表结构体的定义 *//************************************/typedef struct{datatype a[MAXSIZE];int size;}sequence_list;/************************************//* 函数声明 *//************************************/void init(sequence_list *slt);void append(sequence_list *slt,datatype x);void display(sequence_list slt);int find(sequence_list slt ,datatype x);void dele(sequence_list *slt,datatype x);void sort(sequence_list *s);void combine( sequence_list *s1 ,sequence_list *s2 ,sequence_list *s3);/************************************//* 顺序表的初始化函数 *//************************************/void init(sequence_list *slt){slt->size=0;}/************************************//* 顺序表的追加函数 *//************************************/void append(sequence_list *slt,datatype x){if(slt->size==MAXSIZE){printf("\n顺序表是满的!");exit(1);}slt->a[slt->size]=x ;slt->size=slt->size+1;}/************************************/ /* 顺序表的显示函数 */ /************************************/ void display(sequence_list slt){int i;if(!slt.size){printf("\n顺序表为空");}else{for(i=0;i<slt.size;i++)printf("\n%d\n",slt.a[i]);}}/************************************/ /* 顺序表的查找函数 */ /* 返回所查数据的下标 */ /************************************/ int find(sequence_list slt ,datatype x) {int i=0;while(i<slt.size &&slt.a[i]!=x)i++;return(i<slt.size? i:-1);}/************************************/ /* 顺序表的删除函数 */ /************************************/ void dele(sequence_list *slt,datatype x) {int i=0;i=find(*slt,x);for(;i<slt->size-1;i++)slt->a[i]=slt->a [i+1];slt->size--;}/************************************//* 顺序表的插入函数 *//************************************/ void insert(sequence_list *slt,datatype x) {int i=0;i=find(*slt,x);for(;i<slt->size-1;i++)slt->a[i+1]=slt->a [i];slt->size++;}/************************************//* 顺序表排序 *//************************************/ void sort(sequence_list *s){int i ;int j ;int temp ;for(i=0;i<s->size-1;i++){for(j=i+1;j<s->size;j++){if(s->a[i]>=s->a[j]){temp=s->a[i];s->a[i]=s->a[j];s->a[j]=temp;}}}}/************************************//* 两个有序顺序表连接函数 *//************************************/void combine( sequence_list *s1 , sequence_list *s2 , sequence_list *s3 ) {int i=0;int j=0;int k=0;while( i < s1->size && j < s2->size){if(s1->a[i]<=s2->a[j]){s3->a[k]=s1->a[i];i++;}else{s3->a[k]=s2->a[j];j++;}k++;}if(i==s1->size){while(j<s2->size){s3->a[k]=s2->a[j];k++;j++;}}if(j==s2->size){while(i<s1->size){s3->a[k]=s1->a[i];k++;}}s3->size=k;}/************************************/ /* 主函数 */ /************************************/ int main(){int i ;int j ;int x ;int n ;sequence_list list1 ;sequence_list list2 ;sequence_list list3 ;init(&list1);printf("第一个顺序表元素个数:\n");scanf("%d",&n);printf("第一个顺序表输入:\n");for(i=0; i<n ; i++){scanf("%d",&list1.a[i]);list1.size++;}sort(&list1);printf("排序后\n");display(list1);init(&list2);printf("第二个顺序表元素个数:\n");scanf("%d",&n);printf("第二个顺序表输入:\n");for(i=0; i<n ; i++){scanf("%d",&list2.a[i]);list2.size++;}sort(&list2);printf("排序后\n");display(list2);init(&list3);combine(&list1 ,&list2 ,&list3);printf("表一与表二连接后:\n");display(list3);return0;}六、实验数据及处理结果七、思考讨论题或体会或对改进实验的认识八、参考资料[1]《数据结构(c语言版)(第三版)》,李云清,人民邮电出版社[2]《C语言程序设计》,苏小红,高等教育出版社教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。
顺序表实验报告一、实验内容和目的实验目的:掌握顺序表的建立、查找、插入和删除操作。
掌握有序表的建立、合并、插入操作。
实验内容:1. 顺序表的建立2. 顺序表的遍历3. 顺序表的元素查找4. 顺序表的元素插入5. 顺序表的元素删除6. 有序表的建立7. 有序表的遍历8. 有序表的元素插入9. 有序表的合并二、实验原理基本原理:通过连续的地址空间实现逻辑上和物理上连续的储存的一系列元素。
并在此基础上进行元素的添加,查找,删除操作。
有序表的插入算法:元素插入之前的,先跟有序表中的逐个元素进行对比,以找到合适的插入位置。
例如,已有有序表L,要向L 中插入元素18L={13,15,17,19,20,35,40}第一步:将18与L1进行比较,18 > L1,不是合适的插入位置。
第二步:将18与L2进行比较,18>L2,仍然不是不是的插入位置。
重复上述步骤,知道找到18≤Ln,然后在(n-1) 和n之间插入元素。
(如果元素比有序表中的所有元素都要大,则把该元素放到有序表的最后)此例子中,L n-1 = 17,L n = 19插入元素之后的有序表L为:L′={13,15,17,18,19,20,35,40}仍然保持有序。
重置光标的位置:程序接受两种方式的输入。
一种是输入数字后按回车,一种是利用空格间隔的连续几个数字。
然而,在使用后者输入数字的时候,会出现提示输出不正确的问题。
(如图)这个问题的原因简单如下:当程序输出“请输入第2个数字:”的时候,应该等待用户输入;然而,在程序等待输入第一个数字的时候,用户输入了五个数字。
因此,程序输出“输入第2个提示以后”,程序发现仍然有数据没有进行处理,因此把上次输入但未处理的字符当成是用户的输入。
所以没让用户输入数据就自动继续执行。
解决这个问题的思路:每次输出提示时,将光标移动到行首,因此,输出提示的时候会自动覆盖已经输出的提示信息。
效果如下:具体的解决方法:#include<windows.h>// 将光标移动到行首void ResetCursor(){HANDLE hOut;COORD cTarget;CONSOLE_SCREEN_BUFFER_INFO info;int y = 0;hOut = GetStdHandle(STD_OUTPUT_HANDLE);GetConsoleScreenBufferInfo(hOut, &info);y = info.dwCursorPosition.Y;cTarget.X = 0;cTarget.Y = y;SetConsoleCursorPosition(hOut, cTarget);}三、程序流程图四、实现步骤4.1 创建顺序表的实现①通过scanf 函数从键盘中读入数据,并通过scanf函数的返回值判断用户输入的是数字还是非数字,作为判断输入结束的判断。
实验一线性表的顺序存储和操作(有序表的合并)1.目的用顺序表(SqList)类型实现书上算法2.1和2.2,了解线性表及在计算机中的两类不同的存储结构;熟练掌握线性表的查找、插入和删除等算法并灵活运用这些算法。
2.要求用C语言编写程序,其中Lb={2,4,6,8,10} La={1,2,3,4,5},①算法2.1执行后,得到的new La = 1,2,3,4,5,6,8,10②修改Lb=2,6,8,9,11,15,20,并利用新生成的La,得到合并后的Lc,Lc= 1,2,2,3,4,5,6,6,8,8,9,10,11,15,203、预习要求:1、复习书上第20页的例2-1和例2-2;2、复习算法2.3,理解如何构造线性表;3、复习算法2.7,理解算法的执行步骤和含义;4、项目介绍:前面的课程已经学习了如何用C语言描述顺序表、如何初始化顺序表、以及如何在顺序表中插入和删除数据元素。
现在通过两个顺序表的合并的实验,加深对顺序表的理解,熟悉如何将逻辑上的数学模型转化为计算机能够理解的指令代码。
该实验是数据结构课程的第一个实验,实验的目标除了加深理解课堂内容外,还对学生的动手能力提出了更高的要求,锻炼学生动手的能力。
5、算法设计#include <stdio.h>#include <stdlib.h>#include <malloc.h># define TRUE 1# define ERROR 0# define OK 1# define OVERFLOW -2# define FALSE 0# define LIST_INIT_SIZE 10# define LISTINCREMENT 5void main(){List La,Lb,Lc;int j,b[7]={2,6,8,9,11,15,20};InitList(La); // 创建空表La。
如不成功,则会退出程序的运行for(j=1;j<=5;j++) // 在表La中插入5个元素,依次为1、2、3、4、5 ListInsert(La,j,j);printf("La= ");ListTraverse(La,printer); // 输出表La的内容InitList(Lb); // 创建空表Lbfor(j=1;j<=5;j++) // 在表Lb中插入5个元素,依次为2、4、6、8、10 ListInsert(Lb,j,2*j);printf("Lb= ");ListTraverse(Lb,printer); // 输出表Lb的内容Union(La,Lb); // 调用算法2.1,将Lb中满足条件的元素插入La(不改变Lb) printf("new La= ");ListTraverse(La,printer); // 输出新表La的内容ClearList(Lb); // 清空表Lbfor(j=1;j<=7;j++) // 在表Lb中重新依次插入数组b[]的7个元素ListInsert(Lb,j,b[j-1]);printf("Lb= ");ListTraverse(Lb,printer); // 输出表Lb的内容MergeList(La,Lb,Lc); // 调用算法2.2,生成新表Lc(不改变表La和表Lb)printf("Lc= ");ListTraverse(Lc,printer); // 输出表Lc的内容}6.小结线性表是软件设计中最基础的数据结构。
成绩实验一实验题目:有序顺序表的合并一、实验目的掌握顺序表的基本操作理解并分析算法的时间复杂度二、实验内容实现两个有序(从小到大)顺序表合并成为一个有序顺序表,合并后的结果放在第一个顺序表中(假设这两个有序顺序表中没有相同的元素)。
三、设计与编码1、基本思想大体上的方法与“有序顺序表的插入”方法类似。
创建两个数组,实现两个有序顺序表。
需定义第二个表长length2,逐个将第二个顺序表中的数据与第一个数据表中的数据对比大小,并按大小顺序排列、合并,生成第三个表。
最后输出。
2、编码#include<iostream>using namespace std;const int MaxSize=200;class SeqList{ public:SeqList(int a[],int n);int Length();void Insert(int b[],int length2);void PrintList();private:int data[MaxSize];int length;};SeqList::SeqList(int a[],int n){int i;if(n>MaxSize)throw"参数非法";for(i=0;i<n;i++)data[i]=a[i];length=n;}int SeqList::Length(){return length;}void SeqList::Insert(int b[],int length2) { int j,h,i=0;for( j=0;j<length&&i<length2;++j){if(b[i]<data[j]){ for(h=length;h!=j;--h)data[h]=data[h-1];data[j]=b[i];++length;++i;}else if(j==length-1&&b[i]>data[length-1]) {data[length]=b[i];length++;++i;}}}void SeqList::PrintList(){for(int i=0;i<length;i++)cout<<data[i]<<" ";cout<<endl;}void main(){int a[6]={1,5,8,10,15,21};int b[3]={6,13,18};SeqList s(a,6);SeqList c(b,3);cout<<"合并前的顺序表A"<<endl;s.PrintList();cout<<"合并前的顺序表B"<<endl;c.PrintList();cout<<"合并后的顺序表C"<<endl;int x=c.Length();s.Insert(b,x);s.PrintList();}四、调试与运行1、调试时遇到的主要问题及解决括号、花括号未正确配对,出现混乱导致编译出错;第一次运行成功,由于数组输出语句为cout<<data[i]<<endl;界面如下:经调整数组输出语句为cout<<data[i]<<””;cout<<endl;2、运行结果(输入及输出,可以截取运行窗体的界面)五、实验心得写程序代码时务必认真。
实验题目:有序顺序表的合并
一、实验目的
掌握顺序表的基本操作
理解并分析算法的时间复杂度
二、实验内容
实现两个有序(从小到大)顺序表合并成为一个有序顺序表,合并后的结果放在第一个顺序表中(假设这两个有序顺序表中没有相同的元素)。
三、设计与编码
1、基本思想
大体上的方法与“有序顺序表的插入”方法类似。
创建两个数组,实现两个有序顺序表。
需定义第二个表长length2,逐个将第二个顺序表中的数据与第一个数据表中的数据对比大小,并按大小顺序排列、合并,生成第三个表。
最后输出。
2、编码
#include<iostream>
using namespace std;
const int MaxSize=200;
class SeqList
{ public:
SeqList(int a[],int n);
int Length();
void Insert(int b[],int length2);
void PrintList();
private:
int data[MaxSize];
int length;
};
SeqList::SeqList(int a[],int n)
{int i;
if(n>MaxSize)throw"参数非法";
for(i=0;i<n;i++)
data[i]=a[i];
length=n;
}
int SeqList::Length()
{
return length;
}
void SeqList::Insert(int b[],int length2)
{ int j,h,i=0;
for( j=0;j<length&&i<length2;++j)
{if(b[i]<data[j])
{ for(h=length;h!=j;--h)
data[h]=data[h-1];
data[j]=b[i];
++length;
++i;
}
else if(j==length-1&&b[i]>data[length-1]) {
data[length]=b[i];
length++;
++i;
}
}
}
void SeqList::PrintList()
{for(int i=0;i<length;i++)
cout<<data[i]<<" ";
cout<<endl;
}
void main()
{
int a[6]={1,5,8,10,15,21};
int b[3]={6,13,18};
SeqList s(a,6);
SeqList c(b,3);
cout<<"合并前的顺序表A"<<endl;
s.PrintList();
cout<<"合并前的顺序表B"<<endl;
c.PrintList();
cout<<"合并后的顺序表C"<<endl;
int x=c.Length();
s.Insert(b,x);
s.PrintList();
}
四、调试与运行
1、调试时遇到的主要问题及解决
括号、花括号未正确配对,出现混乱导致编译出错;
第一次运行成功,由于数组输出语句为cout<<data[i]<<endl; 界面如下:
经调整数组输出语句为cout<<data[i]<<””;cout<<endl;
2、运行结果(输入及输出,可以截取运行窗体的界面)
五、实验心得
写程序代码时务必认真。