数据结构实验报告顺序表和链表.docx

上传人:scccc 文档编号:14075673 上传时间:2022-02-01 格式:DOCX 页数:3 大小:66.88KB
返回 下载 相关 举报
数据结构实验报告顺序表和链表.docx_第1页
第1页 / 共3页
数据结构实验报告顺序表和链表.docx_第2页
第2页 / 共3页
数据结构实验报告顺序表和链表.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据结构实验报告顺序表和链表.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告顺序表和链表.docx(3页珍藏版)》请在三一文库上搜索。

1、数据结构实验报告顺序表和链表实验报告课程名称数据结构实验项目实验一线性表的生成与操作题目一顺序表和链表的创建与基本操作系 别计算机学院 专业计算机大类班级/学号_(1406/2021011288) 学生姓名 (孙文学) 实验日期_ (2021年10月19日)成 绩指导教师黄改娟实验题目:实验一线性表的生成与操作顺序表和链表的创建与基本操作(自己所选择实验题目,必填)一、实验目的1)掌握线性表的顺序存储和链式存储结构:2)验证顺序表及链表的基本操作的实 现:(验证)3)理解算法与程序的关系,能够将算法转换为对应程序;4)体会线性表在实际应 用中能够解决的问题。(设计、综合)二、实验内容1)根据实

2、验一题目列表,选定题目,说明题目的主要需求;2)结合所选定的题目,定义存储结构,并完成对应应用的线性表创建、插入、删除、查找等基本操作的算法描述;3)程序编码实现,并获得运行结果。三、报告内容1)实验题目及主要存储结构定义(提示:请根据所选定题目,描述存储结构)题目:顺序表和链表的创建及基本操 作顺序表我是采用数组存储的,链表是采用结构体存储的2)结合题目,说明对相应线 性表的基本操作算法描述(提示:可用自然语言、流程图、伪代码等均可,要求对每一个操作,都给出具体的 算法描述)基本操作:#顺序表#(1)插入:在线性表中的x位置插入y将x位置及之后的元素都往后挪一位,将y的值赋给ax.(2)删除

3、:删除位置为x的元素一一另y二ax,然后x之后的元素都往前挪一位。(3)查找:寻找值为y的元素一一从a0开始,若ai=y,则返回i,否则i+0 # 链表#(1)插入:当 1小F要插入的位置X时,i+,插入p-datap-next=s-next;s-next=p;(2)删除:当p-data不等于要删除的值x时,p=p-next;q=p-next; p-next=q-next; free (q);(3)查找:当p-data!=x时,p=p_next,找到之后返回p-data 3)程序源码(提示:列出所编写程序的代码。如果利用图形界面IDE等编程,这里只要求写出关 键操作的程序代码。此外,程序一定要

4、有注释说明)1.顺序表的基本操作(用数组实现)#include #include int mainO int *a; int N, i, j, e, x;printf (、请输入线性表长度N: scanf (a=(int *)malloc(N*sizeof (int) ; for(i=0;iprintf (初始顺序表为:for (i=0; iprintf (插入请输 0,删除请输 1,查找输入 2: scanf (if (x=0) printf( 请输入插入位置 i 和数 e: 插入 scanf (a=(int *)realloc(a, (N+l)*sizeof (int); for(j=N-

5、l; j) aj+l=aEj; aiT=e; for (i=0; ielseif (x=l) /删除 printf (、请输入删除位置 i:scanf (for(i;ielse if (x=2) /查找 printf (、请输入查找位置 i :scanf (e=aiT; printf ( else ( printf(输入错 误! free (a) ; NULL; return 0; 2.单链表的基本操作 include include #define ERROR 0 trdefine OK 1 typedef int status; typedef int ElemType; typedef

6、struct Node ElemType data; struct Node *next; LNode, *LinkList; void Build(LinkList L)建立一个带头结点的单链表 int n; LinkList p, q; P=L; printf (、请输入 n: n scanf ( printf (、请输入 n 个数据元素:n while (n) q=(LinkList)malloc(sizeof(LNode); scanf( q-next=NULL; p-next=q; P=q; void Print (LinkList L)/计算单链表的长度,然后输出单链表 int n

7、um=0; LinkList p; p=L-next; while(p) num+; printf( p=p-next; printf (、长度为dn void Tips 0 printf (、按数字键选择相应操作nprintf (、输出单链表及其长度:n printf (、删除值为x的结点:n printf (、在第n个 位置插入值X:n printf (查找值为X的位置n:n printf (、退出:n void Delete (LinkList L, int x)删除值为 x 的结点 LinkList p, q; p=L; while ( p- next &p-next-data!=x) p=p-next; if(p-next) q=p-next; p-next=q- next; free (q) ; printf (删除成功! ! nn Print (L) ; )感谢您的阅读,祝您生活愉快。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1