实验目的 1.学会如何创建一个单链表 2.如何输出单链表 3.如何连接两个单链表 4..如何删除重复元素
实验内容 将两个递增单链表合并为一个递增单链表,并且 删除重复元素。
设计与编码
本实验用到的理论知识 定义两个指针分别指向两个单链表,比较p- data与q- data的大小,将较小的值放入栈中,输出栈中的元素,将元素存放到aa[n]数组中,然后删除数组中的重复元素,最后将剩余的元素构成一个递增单链表。
算法设计 (1) 单链表的输出
两个单链表连接
将值存放在栈中
输出栈中的元素
运行与测试
1.在调试程序的过程中遇到的问题以及解决方法
问题1:两个单链表都设置了头指针,如何区分 p first- next和q first- next;
解决方法:(破坏了封装性) 问题2:在LinkLIst_main源文件中加入#include“LinkList.cpp”和#include “SeqStack.cpp”会出现如下错误。(注:没有使用模板类)
解决方法:
去掉#include “LinkList.cpp”和#include “SeqStack.cpp”。但是在模板类可以有这两个 并且不会出现错误。
问题三:总是出现如下错误
2.程序的运行的结果
源代码
//LinkList.h
#ifndef LinkList_H
#define LinkList_H struct Node int data;
Node *next;
;
class LinkList public:
LinkList ; //建立只有头结点的空链表 LinkList int a[],int n ; //建立有n个元素的单链表
~LinkList ; //析构函数
void PrintList ; //按序号依次输出各元素 void Connect LinkList r,LinkList w ;//连接两个单链表
public:
Node *first; //单链表的头指针
;
#endif
//LinkList.cpp
#include SeqStack.h
#include LinkList.h
#include using namespace std;
LinkList::LinkList first new Node; //生成头结点
first- next NULL; //头结点的指针域置空 LinkList::LinkList int a[],int n //尾插法 Node *r,*s;
first new Node; //生成头结点
r first; //尾指针初始化
for int i 0;i n;i++ s new Node;
s- data a[i]; //为每个数组元素建立一个结点
r- next s;r s; //将结点s插入到终端结点以后 r- next NULL; //将终端结点的指针域置空 LinkList::~LinkList Node *q NULL;
while first! NULL //释放单链表的每一个结点的存储空间 q first; //暂存被释放结点
first first- next; //first指向被释放结点的下一个结点
delete q; void LinkList::PrintList Node *p first- next; //工作指针p初始化
while p! NULL cout p- data ;
p p- next; //工作指针p后移 cout endl; void LinkList::Connect LinkList r,LinkList w SeqStack XX;
first new Node;
Node *p r.first- next;
Node *q w.first- next;
int s; //储存
while p! NULL q! NULL if p- data q- data s p- data; XX.Push s ; p p- next; else s q- data; XX.Push s ; q q- next; while p NULL q! NULL XX.Push q- data ; q q- next; while q NULL p! NULL XX.Push p- data ; p p- next; XX.Print ; //调用栈中Print 将输出的元素存放到数组中
cout endl; //SeqStack.h
#ifndef SeqStack_H
#define SeqStack_H
const int StackSize
您可能关注的文档
最近下载
- 2026年春季教科版三年级科学下册教学计划及进度表(新版本).docx VIP
- 14.赵海林-北斗云高精度打桩导航定位的副本-20201012-2[1].pptx VIP
- (2026 春新版)二年级科学下册教学计划及进度表.docx VIP
- 重症患者的早期康复课件.pptx VIP
- 2022年新高考全国Ⅱ卷英语真题(原卷版).pdf VIP
- 2026春新版大象版科学三年级下册教学计划.pdf VIP
- 2024年江苏省中考地理试题卷(含答案解析).docx
- 小学数学六年级上册思维拓展精选练习题.docx VIP
- 北斗云 DZ502 打桩放线导航仪 快速操作安装手册说明书.pdf VIP
- 美国机械学会标准ASME B16.51-2013 Copper and Copper Alloy Press-Connect Pressure Fittings.pdf VIP
原创力文档

文档评论(0)