欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    数据结构实验报告.docx

    • 资源ID:3560137       资源大小:39.23KB        全文页数:11页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构实验报告.docx

    数据结构实验报告 线性表的基本操作实现及其应用 一、实验目的 1、熟练掌握线性表的基本操作在两种存储结构上的实现。 2、会用线性链表解决简单的实际问题。 二、实验内容 题目一、该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示: please input the operation: 1.初始化 2.清空 3.求链表长度 4.检查链表是否为空 5.检查链表是否为满 6.遍历链表7.从链表中查找元素 8.从链表中查找与给定元素值相同的元素在表中的位置 9.向链表中插入元素 10. 从链表中删除元素 其他键退出。 其中黑体部分必做 三、实验步骤 、数据结构与核心算法的设计描述 1、单链表的结点类型定义 /* 定义DataType为int类型 */ typedef int DataType; /* 单链表的结点类型 */ typedef struct LNode DataType data; struct LNode *next; LNode,*LinkedList; 2、初始化单链表 LinkedList LinkedListInit 3、 遍历单链表 void LinkedListTraverse(LinkedList L) 4、 求单链表的长度 int LinkedListLength(LinkedList L) 5、 从单链表表中查找元素 LinkedList LinkedListGet(LinkedList L,int i) /L是带头结点的链表的头指针, 返回第 i 个元素 6、从单链表表中查找与给定元素值相同的元素在链表中的位置 LinkedList LinkedListLocate(LinkedList L, DataType x) 7、 向单链表中插入元素 void LinkedListInsert(LinkedList L,int i,DataType x) / L 为带头结点的单链表的头指针,本算法 / 在链表中第i 个结点之前插入新的元素 x 8、 从单链表中删除元素 void LinkedListDel(LinkedList L,DataType x) 删除以 L 为头指针的单链表中第 i 个结点 9、 用尾插法建立单链表 LinkedList LinkedListCreat( ) 、函数调用及主函数设计 主函数 求单链表的长度 LinkedListLength(LinkedList L) 从单链表表中查找元素LinkedList LinkedListGet(Lin向单链表中插入元素 LinkedListInsert(LinkedList L,int i) kedList L,int i,DataType x) 从单链表中删除元素LinkedListDel(Lin用尾插法建立单链表 LinkedList LinkedListCreat( ) kedList L,DataType x) 程序调试及运行结果分析 实验数据 运行时出现: 然后选择下列操作:选择8,用尾插法建立链表 选则操作2,求链表的长度 然后选择操作3,遍历链表 然后选择操作4,从链表中查找元素 然后选择操作5,从链表中查找与给定元素值相同的元素在表中的位置 然后选择个操作6,向链表中插入元素,之后再遍历链表 然后选择操作7 从链表中删除元素之后再遍历链表 实验总结 通过这次线性表的基本操作实现及其应用实验的学习,我学会了链表的许多基本操作,懂得如何用C语言去编程序,懂得了许多链表方面的知识,也认识到了自己的不足,需要在今后的学习中更加努力,学好接下来的课程。 四、主要算法流程图及程序清单 1、主要算法流程图: 开始界面 主函数 求链表长度 遍历链表 查找节点 插入元素 删除元素 建立链表 输出数据 结束 2、程序清单 #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<iostream.h> #define MAX_SIZE 100/链表的最大长度 typedef int DataType; typedef struct LNode DataType data; struct LNode *next; LNode,*LinkedList; LinkedList LinkedListInit;/初始化单链表 int LinkedListLength(LinkedList L);/求单链表的长度 void LinkedListTraverse(LinkedList L);/遍历单链表 LinkedList LinkedListGet(LinkedList L,int i);/ 从单链表表中查找元素 LinkedList LinkedListLocate(LinkedList L, DataType x); /从单链表表中查找与给定元素值相同的元素在链表中的位置 void LinkedListInsert(LinkedList L,int i,DataType x);/向单链表中插入元素 void LinkedListDel(LinkedList L,DataType x) ;/从单链表中删除元素 LinkedList LinkedListCreat(LinkedList L,int n);/尾插法建立单链表 void main int a; LinkedList L; L=(LinkedList) malloc (sizeof (LNode); L->next=NULL; for(a=1;a<=10;a+) cout<<"please input the operation"<<endl; cout<<"n 1.初始化"<<"n 2.求链表长度"<< "n 3.遍历链表" cout<<"n 4.从链表中查找元素 "<<"n 5.从链表中查找与给定元素值相同的元素在表中的位置" cout<<"n 6.向链表中插入元素"<<"n 7. 从链表中删除元素"<<"n 8.尾插法建立链表"<<"n 9.结束!"<<endl; cout<<"请输入你所需的操作:!"<<endl; cin>>a; if(a=1) LinkedListInit; else if(a=2) cout<<"链表长度:"<<LinkedListLength(L)<<endl; else if(a=3) LinkedListTraverse(L); else if(a=4) int i; cout<<"请输入要查找的位置:"<<endl; cin>>i; LinkedListGet(L,i); else if(a=5) int x; cout<<"请输入要查找的数据:"<<endl; cin>>x; LinkedListLocate( L, x); else if(a=6) int i,x; cout<<"请输入要插入的位置和数据:"<<endl; cin>>i>>x; LinkedListInsert( L, i, x); else if(a=7) cout<<"请输入要删除的位置:"<<endl; cin>>a; LinkedListDel(L,a); else if(a=8) int n; cout<<"请输入要创建的元素个数:"<<endl; cin>>n; L=LinkedListCreat(L,n); else if(a=9) exit(0); else cout<<"输入错误,请重新选择"<<endl; LinkedList LinkedListInit /初始化单链表 LinkedList L; L=(LinkedList )malloc(sizeof(LinkedList); /创建头节点 L->next=NULL; L->data=0; return L; int LinkedListLength(LinkedList L) /求单链表的长度 LinkedList p; int i=0; p=L; while(p) p=p->next ; i+; return i; void LinkedListTraverse(LinkedList L) /遍历单链表 LinkedList m; m=L; while(m!=NULL) cout<<m->data; m=m->next; LinkedList LinkedListGet(LinkedList L,int i) / 从单链表表中查找元素 LinkedList p; p=L->next; int j=1; while(p&&j<i) p=p->next; j+; if(!p|j>i) return 0; else cout<<p->data; return p; LinkedList LinkedListLocate(LinkedList L, DataType x) /从单链表表中查找与给定元素值相同的元素在链表中的位置 int i=1,m=0; if(L->next=NULL) return 0; else LinkedList p=L->next; while(p) if(p->data=x) m+; cout<<"位置为第"<<i<<"个结点"<<endl; i+; p=p->next; if(m>0) return p; else return 0; void LinkedListInsert(LinkedList i,DataType x) /向单链表中插入元素 LinkedList p,s; int j=0; p=L; while(p&&j<i-1) p=p->next; j+; if(!p|j>=i-1) cout<<"插入失败!"<<endl; else s=(LinkedList )malloc(sizeof(LNode); s->data=x; s->next=p->next; p->next=s; L,int L->data=LinkedListLength(L); void LinkedListDel(LinkedList L,DataType x) /从单链表中删除元素 LinkedList p, q; / p指针指向待删除结点;q为跟踪指针,指向其前驱。 q=p=L; /初始化指针 p=p->next; /q指向第一个结点 while(p!=NULL)&&(p->data!=x) q=p; p=p->next; / p!=NULL&& p->data!=x,指针后移,继续向后查找 / q始终指向p的前驱 if(p= NULL) printf("X not found"); else q->next=p->next;/修改指针, 删除结点X free (p); L->data=LinkedListLength(L); LinkedList LinkedListCreat(LinkedList L,int n) /尾插法建立单链表 L=(LinkedList) malloc (sizeof (LNode); L->next = NULL; / 先建立一个带头结点的单链表 LinkedList q=L; for (int i = 1; i<=n; i+) LinkedList p=(LinkedList) malloc (sizeof (LNode); cout<<"请输入数据:"<<endl; cin>>p->data; / 输入元素值 p->next = NULL; q->next = p; / 插入表尾q之后 q=p; /指针后移,使q始终指向表尾 L->data=LinkedListLength(L); return L;

    注意事项

    本文(数据结构实验报告.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开