当前位置:首页 >> 数学 >>

实验3链表的实现和应用


陕西科技大学实验报告
班级 实验日期 学号 室温 姓名 实验组别 报告 日期 成绩

报告内容:(目的和要求、原理、步骤、数据、计算、小结等) 实验名称:链表的实现和应用 实验目的: 1. 掌握链表的概念。 2. 熟练掌握链表的链试存储结构。 3. 熟练掌握链表在链试存储结构上的运算。 4. 了解测试的思想。 实验环境:(硬/软件要求): Windows 2000,Visual C++ 6.0 实验原理: 链表是通过每个结点的指针域将线性表的 n 个结点按其逻辑顺序链接在一起。由于链表 的每个结点只有一个指针域,故将这种链表有又称为单联表。

链表的结点结构 ┌───┬───┐ │data │next │ └───┴───┘ data 域--存放结点值的数据域 next 域--存放结点的直接后继的地址(位置)的指针域(链域)

实验内容: 1. 编写算法,根据用户输入的字符数据用尾插法创建一个带头结点的单链表,“#”作为输 入数据的结束符。 测试数据共有 4 组,分别是:1)“#”;2)“a#”;3)“ab#”;4)“abcd#”。 2. 编写算法,实现在带有头结点的单链表中按序号查找的函数。 假设单链表中包含 6 个元素数据,测试数据是:1)查找第 0 个;2)查找第 1 个;3)查 找的 2 个;4)查找第 6 个;5)查找第 7 个。 实验要求: 1. 完成链表存储结构的类型设计。 2. 完成链表带头结点尾插法函数。 3. 完成按序号查找函数。


4. 编写主函数完成实验要求。 C 语言源程序 #include<stdio.h> #include<stdlib.h> typedef char datatype; typedef struct node { datatype data; struct node *next; } linklist; linklist *createlist() { char ch; linklist *head,*s,*r; head=(linklist*)malloc(sizeof(linklist)); r=head; printf("请输入字符产生链表,以#结束\n"); ch=getchar(); while(ch!='#') { s=(linklist*)malloc(sizeof(linklist)); s->data=ch; r->next=s; r=s; ch=getchar(); } r->next=NULL; return head; } linklist*get(linklist*head,int i) { int j; linklist*p; p=head;j=0; while((p->next!=NULL)&&(j<i)) {




p=p->next; j ++; } if(i==j)return p; else return NULL; } void main() { linklist*head,*r; int num; head=createlist(); printf("链表信息为:"); r=head->next; while(r) { printf("%c",r->data); r=r->next; } printf("\n"); printf("请输入要查询的序号:\n"); scanf("%d",&num); r=get(head,num); if(r==NULL) printf("没有查到\n"); printf("查找的结果为:%c\n",r->data); }







实验小结:链表是一种物理存储单元上非连续、 非顺序的存储结构, 数据元素的逻辑顺序是通过
链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在 运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点 地址的指针域


赞助商链接
相关文章:
实验3.单链表的实现
实验3.单链表的实现_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档实验3.单链表的实现_计算机软件及应用_IT/计算机_专业资料。《数据...
实验3 单链表的操作与应用
单链表的基本 基本操作与应用 实验 3 单链表的基本操作与应用一、实验目的 (1) 通过实验,进一步培养学生利用 C 语言进行编程和调试程序的能力,使学生能够利用 C...
实验三——二叉链表实现二叉树
实验三——二叉链表实现二叉树_计算机软件及应用_IT/计算机_专业资料。北邮数据结构实验 二叉树 北京邮电大学信息与通信工程学院 数据结构实验报告实验名称: 学生姓名...
实验3单链表
数据结构算法专题实验报告实验名称: 单链表 评分:___ 姓名: 石博洋 班级: 计科 1602 班学号: 201610333 实验内容: 建立一个单链表,并实现插入、删除操作。 ...
实验3 指针和链表
实验3 指针和链表_物理_自然科学_专业资料。实验指针和链表 一.实验目的 ⒈...实现思路: 用 head 指针永远指向链表头。 用 q 指针一开始指向第一个有数据...
实验2 单链表的实现与应用
实验目的: 1)熟练掌握单链表的使用; 2)理解用链表实现线性表的特点; 3)了解链表的多种形式。 4)学会利用单链表解决实际应用问题 2. 实验要求: 1) 学时为 ...
实验三 线性表的应用
实验三 线性表的应用一.实验目的 1.掌握顺序表、单链表的设计过程。 2.学会根据问题的需要选择合适的存储结构。 2.应用设计好的表实现求两个一元多项式的和 二...
实验三 二叉树的操作及应用
实验三 二叉树的操作及应用 实验课程名: 数据结构与算法 专业班级: 15 计科 ...(3)运行结果分析: 运用链表实现二叉树的建立 9 三、实验小结通过此次学习进一步...
数据结构实验3
通过实验掌握单链表的基本操作和具体的函数实现。 二、实验设备(环境)及要求 微型计算机; windows 操作系统; Microsoft Visual Studio 6.0 集成开发环境。 实验...
实验一 线性表的基本操作实现及其应用
实验一 线性表的基本操作实现及其应用_数学_自然科学_专业资料。发发实验...<<endl; else cout<<"链表清空失败!"<<endl; break; case 3: //链表的...
更多相关标签: