数据结构线性表实验报告

时间:2026.4.16

浙江万里学院实验报告

 

课程名称:      数据结构                                

实验名称:      线性表                                

专业班级: 计算机111  实验小组:    第十组       实验日期: 20##-9-21           


第二篇:数据结构-线性表实验报告


《数据结构与算法分析》

课 程 实 验 报 告


【实验目的】

1. 理解线性表的链式存储原理 。

2. 掌握链表的常用操作算法。

【实验内容】

1. 创建链表并对其进行输出;

2. 利用指针实现对两个线形链表的合并,并输出其结果。

【实验方式】

个人实验。

【实验设备与环境】

  PC机,Windows XP操作系统,VC++6.0开发环境

【数据结构及函数定义】

   以下给出的只是范例,请同学们根据自己编写的程序内容进行填写

(1)类的定义:类的数据成员,成员函数

      class link  表类

{ //数据成员

public:

int element;节点值

link *next;指向表中下一节点的指针

//成员函数

link(const int& elemval,link*nextval=NULL) 构造函数1

             {element=elemval;next=nextval;} 给定节点值

          link(link*nextval=NULL)构造函数2

              {next=nextval;}

           ~link(){}析构函数

   (2)主函数main() 实现初始化操作,完成对子函数的调用

void main()

{

      link *la,*lb,*lc;

      la=creat();

      lb=creat();

      cout<<"链表la:\n";

      printlist(la);

      cout<<"链表lb:\n";

      printlist(lb);

      lc=comb(la,lb);

      cout<<"合并后的链表lc:\n";

      printlist(lc);

}

   (3)子函数

  link *creat()  创建链表

{

    link *head,*tail,*t;

    head=new link;

    tail=head;

    int m;

    cout<<"请输入链表得值m:(以0结束)"<<endl;

    cin>>m;

    while(m!=0)

    {

        t=new link(m);

        tail->next=t;

        tail=t;

        cin>>m;

            }

    return head;

}

  void printlist(link *lp)  输出链表

{

    lp=lp->next;

    while(lp!=NULL)

    {

        cout<<lp->element<<" "<<endl;

        lp=lp->next;

    }

    cout<<endl;

}

  link *comb(link *la, link *lb)   合并链表

link *comb(link *lA,link *lB)

{

    link *pa=lA->next;

    link *pb=lB->next;

    link *q,*n=lA;

    while (pa!=NULL&&pb!=NULL)

    {

        if(pa->element<pb->element)

        {n->next=pa;

        n=pa;

        pa=pa->next;

        }

         

         else if(pa->element>pb->element)

        {

            n->next=pb;

            n=pb;

            pb=pb->next;

        }

        else

        {

            n->next=pa;

            n=pa;

            pa=pa->next;

            q=pb;

            pb=pb->next;

            delete(q);

        }

       

    }

    if (pa==NULL)

      

        n->next=pa?pa:pb;

    return lA;

}

【测试数据与实验结果】

测试数据: la =2 3 5 6    lb= 4 5 7 8

    实验结果: 链表la(2.3.5.6)与链表(4.5.7.8)合并后得到链表(2.3.4.5.6.7.8)

       

【源程序清单】

#include<iostream>

using namespace std;

class link

{

public:

  int element;

    link *next;

    link(const int &elemval,link*nextval=NULL)

    {

        element=elemval;

        next=nextval;

    }

    link(link *nextval=NULL)

    {

        next=nextval;

    }

~link(){}

};

link *creat()

{

    link *head,*tail,*t;

    head=new link;

    tail=head;

    int m;

cout<<"请输入链表得值m:(以0结束)"<<endl;

    cin>>m;

    while(m!=0)

    {

        t=new link(m);

        tail->next=t;

        tail=t;

    cin>>m;

       

    }

    return head;

}

void printlist(link *lp)

{

    lp=lp->next;

    while(lp!=NULL)

    {

        cout<<lp->element<<" "<<endl;

        lp=lp->next;

    }

    cout<<endl;

}

link *comb(link *lA,link *lB)

{

    link *pa=lA->next;

    link *pb=lB->next;

    link *q,*n=lA;

    while (pa!=NULL&&pb!=NULL)

    {

        if(pa->element<pb->element)

        {n->next=pa;

        n=pa;

        pa=pa->next;

        }

     

     else if(pa->element>pb->element)

        {

            n->next=pb;

            n=pb;

            pb=pb->next;

        }

        else

        {

            n->next=pa;

            n=pa;

            pa=pa->next;

        q=pb;

            pb=pb->next;

        delete(q);

        }

       

    }

    if (pa==NULL)

      

    n->next=pa?pa:pb;

    return lA;

}

void main()

{

   

    link *la,*lb,*lc;

    la=creat();

    lb=creat();

    cout<<"链表la:\n";

    printlist(la);

    cout<<"链表lb:\n";

    printlist(lb);

    lc=comb(la,lb);

    cout<<"合并后的链表lc:\n";

    printlist(lc);

}


更多相关推荐:
数据结构 线性表操作实验报告

数据结构实验报告实验题目线性表的操作实验目的1掌握上机调试线性表的基本方法2掌握线性表的一些基本操作实验内容将两个有序链表合并为一个有序链表一需求分析1实验程序中先创建两个有序链表演示程序以用户和计算机的对话方...

数据结构线性表试验报告

线性表上机实习1实验目的1熟悉将算法转换为程序代码的过程2了解顺序表的逻辑结构特性熟练掌握顺序表存储结构的C语言描述方法3熟练掌握顺序表的基本运算查找插入删除等掌握顺序表的随机存取特性4了解线性表的链式存储结构...

数据结构线性表实验报告

《数据结构》实验报告院系应用科技学院专业电子信息工程姓名##学号10级电信班20##年10月11日1.实验目的1.掌握线性表的基本运算。2.掌握顺序村存储的概念,学会对顺序存储数据结构进行操作。3.加深对顺序存…

数据结构--实验报告 线性表的基本操作

一、实验目的二、实验内容和要求三、源代码1)顺序表的代码2)单链表的代码四、测试结果1)顺序表的测试结果2)单链表的测试结果五、心得体会实验一线性表的基本操作及其应用一、实验目的1、帮助读者复习C++语言程序设…

数据结构实验报告 线性表的顺序表示和实现

数学与计算科学学院实验报告实验项目名称线性表的顺序表示和实现所属课程名称数据结构A实验类型验证性实验日期20xx年4月5号班级信管1002班学号20xx44070218姓名张松涛成绩1234附录1源程序5678...

数据结构实验报告三线性表的链式存储

实验报告三线性表的链式存储班级20xxXXX姓名HoogLe学号20xxXXXX专业XXXX2858505197qqcom一实验目的1掌握单链表的基本操作的实现方法2掌握循环单链表的基本操作实现3掌握两有序链表...

数据结构线性表实验报告

实验报告实验一线性表实验目的1理解线性表的逻辑结构特性2熟练掌握线性表的顺序存储结构的描述方法以及在该存储结构下的基本操作并能灵活运用3熟练掌握线性表的链表存储结构的描述方法以及在该存储结构下的基本操作并能灵活...

数据结构实验报告实验一线性表

北京邮电大学信息与通信工程学院数据结构实验报告实验名称实验一线性表学生姓名班级班内序号学号日期20xx年11月7日1实验要求实验目的通过选择下面四个题目之一进行实现掌握如下内容熟悉C语言的基本编程方法掌握集成编...

数据结构实验报告-2-1-线性表(顺序表实现)

实验21线性表顺序表实现的基本操作及其应用一实验目的1帮助读者复习C语言程序设计中的知识2熟悉线性表的逻辑结构3熟悉线性表的基本运算在顺序表结构上的实现4掌握顺序表的存储结构形式及其描述和基本运算的实现二实验内...

数据结构实验报告1线性表的顺序存储结构

数据结构实验报告1线性表的顺序存储结构,内容附图。

数据结构实验报告在实现线性表的基础上实现逆置功能

数据结构实验报告1实验题目在实现线性表的基础上实现逆置功能2需求分析本演示程序用TC编写完成线性表的逆置功能输入的形式和输入值的范围逆转线性表中的元素首先需要输入需要逆转的元素然后通过计算机逆转以后输出在输入和...

数据结构实验报告

数据结构随堂实验实验报告指导教师:姓名:学号:班级:专业:计算机科学与技术目录C语言结构体与指针.1线性顺序表的实现及操作.3串的匹配与替换.6线性链表的实现及操作.8栈和队列的应用.13二叉树的实现及遍历.2…

数据结构线性表实验报告(35篇)