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

实验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); }







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


相关文章:
实验三 链表的建立及基本操作方法实现
实验三 链表的建立及基本操作方法实现_电脑基础知识_IT/计算机_专业资料。实验二顺序表的建立及基本操作方法实现实验预备知识: 1.熟练运用指针进行程序设计,掌握结构...
实验三—树的实现与应用实验报告
实验三—树的实现与应用实验报告_IT/计算机_专业资料。中国矿业大学计算机科学与...(一个字符) ,空格字符表示空树 //构造二叉链表表示的二叉树 T char ch; ...
实验报告3-单链表
实验报告-3 课程名__ 实姓 数据结构 实验名称_单链表的简单操作实现实 验报告日期年月日 验日期年月日名___学号___ 一、实验目的 1、掌握顺序存储的线性表...
实验三:线性表应用--链表
1 实验三:线性表应用——链表实验日期: 年月日 评阅成绩: 实验目的及要求 1...2. 3. 4. 熟练掌握线性表的基本操作在链式存储上的实现; 以线性表的各种...
实验3 指针和链表
实验3 指针和链表_物理_自然科学_专业资料。实验指针和链表 一.实验目的 ⒈...实现思路: 用 head 指针永远指向链表头。 用 q 指针一开始指向第一个有数据...
实验3 单链表的操作与应用
单链表的基本 基本操作与应用 实验 3 单链表的基本操作与应用一、实验目的 (1) 通过实验,进一步培养学生利用 C 语言进行编程和调试程序的能力,使学生能够利用 C...
实验三 全线索链表应用
实验三 全线索链表应用问题定义及需求分析 1.1 课题目的和任务 问题描述: 对...实现对整个树 中数据的中序线索输出,并且能够在删除树中某个节点后,实现对该...
实验三 二叉树的操作及应用
实验三 二叉树的操作及应用 实验课程名: 数据结构与算法 专业班级: 15 计科 ...(3)运行结果分析: 运用链表实现二叉树的建立 9 三、实验小结通过此次学习进一步...
《数据结构》实验3实验报告
《数据结构》实验3实验报告_计算机软件及应用_IT/计算机_专业资料。数据结构相关...3.掌握线性表的链式存储结构——单链表的定义及实现。 4.掌握线性表在顺序存储...
实验三 二叉树的基本操作实现及其应用
实验三 二叉树的基本操作实现及其应用_计算机软件及应用_IT/计算机_专业资料。实验...输入二叉树中结点的值(一个字符),空格字符表示空树, //构造二叉链表表示的...
更多相关标签: