1 / 14
文档名称:

实验一线性表的基本操作实现及其应用.doc

格式:doc   大小:112KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验一线性表的基本操作实现及其应用.doc

上传人:tswng35 2022/1/27 文件大小:112 KB

下载得到文件列表

实验一线性表的基本操作实现及其应用.doc

相关文档

文档介绍

文档介绍:-
. z
实验 一 线性表的根本操作实现及其应用
一、实验目的
1、熟练掌握线性表的根本操作在两种存储构造上的atus LinkedListInsert(LinkedList L,int i,DataType *)
{
}
函数调用及主函数设计
Main函数
初始化链表
调用菜单函数




5. 按位置查找元素
6.
按值查找元素



等待选择,等输入1-9时,调用对应函数,否则退出
程序完毕
输入1-9
输入非1-9

程序调试及运行结果分析
1.进入选择界面后,先选择7,进展插入:
,进展遍历,结果为:
选择2,得出当前链表长度.
,得出当前链表为.
选择分别选择5、6进展测试.
选择8,分别按位置和元素值删除.
选择9,或非1-8的字符,程序完毕.
实验总结
通过这次实验,我对线性链表有了更深的理解,深入明白了线性存储构造与链式存储构造在存存储的不同特点,同时我还学会了用这些知识实际解决一些问题,能够更加熟练地将算法转化为实际程序。同时,在写程序和调试程序的过程中,学会了一些书写技巧和调试技巧,这对于自己能在短时间高效的写出正确地程序有很大作用。
-
. z
四、主要算法流程图及程序清单
主要算法流程图:
(1)从单链表表中查找与给定元素值一样的元素在链表中的位置
p=p->ne*t
p&&!(p->data==*)
true
调用函数,传入参数L,*
p=L->ne*t
false
返回p
调用函数,传入参数L,i,*
建立新结点s,令
s->data=*;
p=L->ne*t
i==1
p=null
false
L->ne*t=s;
s->ne*t=NULL;
true
L->ne*t=s;
s->ne*t=p;
j=1
j<i-1&&p
p=p->ne*t
j++
true
q=p->ne*t;
p->ne*t=s;
s->ne*t=q;
P不为空
返回对应值
False
False
程序清单:
#include<iostream>
using namespace std;
#include<>
#include<>
/* 预处理命令 */
#define OK 1;
#define ERROR 0;
#define OVERFLOW -1;
/* 单链表的结点类型 */
typedef struct LNode
{
int data;
struct LNode *ne*t;
}LNode,*LinkedList;
/*初始化单链表*/
LinkedList LinkedListInit()
{
//定义并返回头结点
LinkedList L;
L=(LinkedList)malloc(sizeof(LNode));
L->ne*t=NULL;
return L;
}
/*清空单链表*/
void LinkedListClear(LinkedList L)
{
//释放除头结点外的所有存空间
LinkedList p=L->ne*t,q;
L->ne*t=NULL;
while (p)
{
q=p->ne*t;
free(p);
-
. z
p=q;
}
cout<<"\t\t\t已清空!"<<endl;
}
/*检查单链表是否为空*/
int LinkedListEmpty(LinkedList L)
{
//判断头结点的ne*t是否为空,如果空返回OK,否则返回ERROR
if (!(L->ne*t))
return OK;
return ERROR;
}
/*遍历单链表*/
void LinkedListTraverse(LinkedList L)
{
//遍历并输出L所有结点〔不含头结点〕的数据
LinkedList p=L->ne*t;
if (!p