实验一线性表操作实验报告


    XX学计算机学院实验报告
    课程名称   数结构   实验名称__线性表操作   
    实验报告求:1实验目  2实验容   3实验步骤   
    4运行结果   5流程图      6实验体会   
     实验目
    1 熟悉掌握线性表逻辑结构物理结构
    2 熟悉掌握序表存储结构基操作具体函数定义
    3 熟悉VC++程序基结构掌握程序中户头文件实现文件文件间相互关系作
    4 熟悉VC++操作环境文件输入编辑调试运行全程
    二实验求
    1 实验前认真准备编写源程序
    2 实验中认真调试程序运行结果进行分析注意程序正确性健壮性验证
    3 断积累程序调试方法
    三实验容
    基题
    1 元素类型整型序存储线性表进行插入删查找操作
    源程序:
     #include
    #include
    #include

    const LIST_INIT_SIZE10
    const LISTINCREMENT1

    typedef struct
    {
    int *elem
    int length
    int listsize
    }SqList

    void InitList_Sq(SqList&L) 构造空线性表L
    {
    Lelem(int*)malloc(LIST_INIT_SIZE*sizeof(int))
    if(Lelem)
    exit(0) 存储分配失败
    Llength0 空表长度0
    LlistsizeLIST_INIT_SIZE 初始存储容量
    cout<}

    void ListInsert_Sq(SqList&Lint iint j) 序线性表L中第i位置前插入新元素j
    i合法值1{
    if(i<1||i>Llength+1)
    cout< if(Llength>Llistsize) 前存储空间已满增加分配
    {
    int *newbase(int*)realloc(Lelem(Llistsize+LISTINCREMENT)*sizeof(int))
    if(newbase)
    exit(0) 存储分配失败
    Lelemnewbase 新基址
    Llistsize+LISTINCREMENT 增加存储容量
    }
    int *q&(Lelem[i1])
    for(int*p&(Lelem[Llength1])p>qp)
    *(p+1)*p
    *qj
    ++Llength
    cout<}ListInsert_Sq

    void ListDelete_Sq(SqList&Lint iint&j) 序线性表L中删第i元素j返回值
    i合法值1{
    if((i<1)||(i>Llength))
    cout< int *p&(Lelem[i1]) p删元素位置
    j*p 删元素值赋j
    int *qLelem+Llength1 表尾元素位置
    for(++pp *(p1)*p
    Llistsize 删元素元素左移
    cout<}ListDelete_Sq

    bool compare(int mint n)
    {
    if(mn)
    return true
    else
    return false
    }

    int LocateElem_Sq(SqList Lint j) 序线性表L中查找第1值j满足compare()元素位序
    找返回L中位序否返回0
    {
    int i1 i初值第1元素位序
    int *pLelem p初值第1元素存储位置
    while(i {
    ++i
    p++
    }
    if(i return i
    else
    return 0
    }LocateElem_Sq

    void disp(SqList&L)
    {
    int *pLelem
    for(int i0i {
    cout<<*p<<
    p++
    }
    }

    void main()
    {
    SqList List
    InitList_Sq(List)
    int *pListelem
    int mnjkxy
    for(int i0i {
    cin>>x
    *px
    p++
    Listlength++
    }
    cout<<插入请1删请2寻找请3< for(k0k10k++)
    {
    cin>>y
    if(y1)
    {
    cout<<请输入插入位置元素值< cin>>m>>n
    ListInsert_Sq(Listmn)
    disp(List)
    }
    else if(y2)
    {
    cout<<请输入删第元素< cin>>m
    ListDelete_Sq(Listmj)
    cout< disp(List)
    }
    else
    {
    cout<<请输入查找元素< cin>>m
    cout< }
    }
    cout<}
     运行结果:
     
     加强提高题:
    2编写求解Josephus问题函数整数序列1 2 3 …… n表示序围坐圆桌周围然n 9 s 1 m 5n 9 s 1 m 0者n 9 s 1 m 10作输入数检查程序正确性健壮性分析完成算法时间复杂度定义JosephusCircle类中含完成初始化报数出圈成员函数输出显示等方法(选做中)
    加强题:
    1采数组作求解程中数结构
    提高题:
    2采循环链表作求解程中数结构运行时允许指定意nsm数值直输入 n 0 退出程序

    源程序:
    (1)加强:
    #include
    #include
    #include

    int a[100]
    int josephus(int nint sint m)
    {
    if((n*s*m))
    {
    cout<<输入错误< exit(0)
    }
    int x1yn
    int is1
    int j
    while(y)
    {
    for(i0i {
    if(a[i]+1)
    a[i]x++
    if(a[i]m)
    { a[i]1
    cout< x1
    y
    }
    }
    for(j0j {
    if(a[j]+1)
    a[j]x++
    if(a[j]m)
    {
    a[j]1
    x1
    y
    if(y)
    break
    else
    cout< }
    }
    }
    return (j+1)
    }

    void main()
    {
    int nsmy0
    int x
    do{
    for(int i0i<100i++)
    {a[i]0}
    cout<<请输入参加游戏总数< cin>>n
    cout<<请输入开始位置报数长度< cin>>s
    cin>>m
    xjosephus(nsm)
    cout< cout<<请选择< cout<<1重新游戏 2退出程序< cin>>y
    }while(y1)
    getch()
    }






     运行结果:

     
    (2)提高:
    #include
    using namespace std

    typedef struct LNode
    {
    struct LNode *next
    int a
    }LNode*LinkList

    class JosephouCircle 定义类包括三元素
    {
    public
    void SetValue()
    void PickOut()
    private
    int n
    int s
    int m
    }

    void JosephouCircleSetValue() 设置初值
    {
    cout<<请输入参加游戏总数< cin>>n
    cout<<请输入开始位置< cin>>s
    cout<<请输入报数长度< cin>>m
    }

    void JosephouCirclePickOut()
    {
    LinkList L
    LNode *p*q
    int jk
    L(LinkList)malloc(sizeof(LNode))
    L>nextNULL
    LNode*r
    rL
    for (int i1i {
    p(LinkList)malloc(sizeof(LNode))
    p>ai
    p>nextNULL
    r>nextp
    rp
    }
    p>nextL>next
    pL>next
    j1
    while(p&&j {
    pp>next++j
    }
    for(i1i {
    for(j1j {
    pp>next
    }
    qp>nextp>nextq>next
    pq>next
    kq>a
    cout<<输出结果< free(q)
    }
    }

    int main(int argcchar* argv[])
    {
    JosephouCircle Jo1
    Jo1SetValue()
    Jo1PickOut()
    return 0
    }
     运行结果:
     
     四实验体会总结
    1线性链表序表属线性表问题线性链表序表灵活方便
    2线性表做元素寻找操作时候必须头结点开始寻找

    体会:
    编程序时候肯定会遇许问题遇问题:运行程序时候输入元素程序继续做面操作停止运行寻找修改久没发现问题实没办法问学结果终发现条语句编写时出现错误写程序时候定认真仔细点仔细点
     
    教师评价

     

     

     

     

     
    教师签名
     
    日期
     

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    实验一-线性表及其应用(I)

    姓名学号实验项目线性表及其应用(I)实验内容1.实现线性表的顺序存储结构和主要的基本操作,并添加输出显示等辅助函数,在此基础上实现后续两个算法。线性表的抽象数据类型定义参见教材第19页。顺序存...

    2年前   
    541    0

    操作系统进程管理实验报告

    操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;...

    1年前   
    353    0

    《电子商务》实验报告一

    《电子商务》实验报告一 开课实验室: 电子商务实验室 2005 年 4 月 4 日 学院 经济与工商管理学院 年级、...

    13年前   
    27819    1

    初一物理实验报告

    初一物理实验报告  “浮力消失”了   做下面的小试验。   器材   找一个底面很平的容器,让一个蜡烛头紧贴在容器底部,再往容器里倒水,蜡烛头并不会浮起来;轻轻地把蜡烛头拨倒,它立刻就会浮起...

    12年前   
    534    0

    化学实验报告

    化学实验报告  化学是一门以实验为基础的学科。化学上的许多理论和定律都是从实验中发现归纳出来的。同时,化学理论的应用、评价也有赖于实验的探索和检验。虽然到了近代乃至现代,化学的飞速进步已经产生...

    11年前   
    1036    0

    教育实验报告

    教育实验报告  教育实验报告  对某种教育现象实验后,要对整个实验过程进行全面总结,提出一个客观的、概括的、能反映全过程及其结果的书面材料,即谓教育实验报告。教育实验报告可分为三部分:①前言。...

    12年前   
    740    0

    上机实验报告

    上机实验报告  一.     题目1.  建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。要求实现以下功能:1)        数据输入;2)        查...

    8年前   
    861    0

    **学院实验报告

    实验内容:使用金融数据库查找宏观经济及行业相关数据,使用Excel进行作图分析。根据所得数据以及图形分析相关问题。实验目的:掌握金融数据库软件的相关使用,操作,快捷查找数据,能够制作美观图形,对于数据有效分析。

    3年前   
    677    0

    电路实验报告

    实验一 元件特性的示波测量法一、实验目的1、学习用示波器测量正弦信号的相位差。2、学习用示波器测量电压、电流、磁链、电荷等电路的基本变量3、掌握元件特性的示波测量法,加深对元件特性的理解。二...

    3年前   
    3044    0

    生物实验报告

    生物实验报告  实验   生物组织中还原糖、脂肪、蛋白质的鉴定  一、实验目的  初步掌握鉴定生物组织中还原糖、脂肪、蛋白质的基本方法。  二、实验原理  1.还原糖的鉴定原理  生物组织中普...

    9年前   
    826    0

    CADCAM实验报告

     二叉树的遍历实验一、实验名称:二叉树的遍历实验。二、实验目的:1、掌握CAD/CAM系统中常用的数据结构二叉树的概念、存储结构以及二叉树遍历技术。2、熟练应用C语言编写二叉树的建...

    4年前   
    942    0

    oracle实验报告

    《Oracle数据库设计与 实现》 总结报告 成绩:-------------- ...

    2年前   
    501    0

    爱情实验报告

    爱情实验报告  爱情实验报告   这学期要做一周的模块实验,我和欣儿分在一组,欣儿是班里的学习委员,负责收缴每天实验后大家必写的实验报告。    欣儿长的很美,碰到人总是浅浅地笑,不象有些女生...

    12年前   
    750    0

    物理实验报告

    物理实验报告  物理 实验报告              指导教师    同组者                     实验日期  2003 年9月21日   实验名称 实验一 测量物质的密...

    10年前   
    838    0

    科技实验报告

    科技实验报告  科技实验报告   一、定义与作用  实验报告,就是在某项科研活动或专业学习中,实验者把实验的目的、方法。步骤、结果等,用简洁的语言写成书面报告。  实验报告必须在科学实验的基础...

    9年前   
    737    0

    汇编实验报告

    XX大 学 计 算 机 学 院、软 件 学 院实 验 报 告 学号: 姓名:专业:计算机科学与技术 班级: 第X周 课程名称   汇编语言程序设计课程设计(第四次)实验课时30课时...

    1年前   
    450    0

    GPIO实验报告

    通过实验掌握 ARM 芯片使用 GPIO 端口。掌握 GPIO 端口控制 LED 显示。掌握系统时钟的配置。掌握库开发原理及方法。

    3年前   
    1430    0

    实验报告格式

    实验报告格式实验序号:          实验项目名称:学 号 姓 名 专业、班 实验地点 指导教师 时间 一、实验目的及要求 二、实验设备(环境)及要求 三、实验内容与步骤 四、实验结果与数...

    11年前   
    775    0

    操作系统实验报告C语言实现银行家算法

    实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调...

    3年前   
    466    0

    驱动程序实验报告操作系统课程设计报告

    操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作...

    1年前   
    297    0

    文档贡献者

    文***享

    贡献于2020-12-17

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档