最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数据结构-实验2-单链表的基本运算

来源:动视网 责编:小OO 时间:2025-09-24 10:57:35
文档

数据结构-实验2-单链表的基本运算

《数据结构》课程实验报告实验名称单链表的基本运算实验序号2实验日期2012-4-8姓名曹志华院系计算机科学与信息工程学院班级101041C1学号1010411501专业计算机科学与技术指导教师武伟成绩教师评语一、实验目的和要求1.了解单链表基本运算的实现;2.进一步掌握链表使用的步骤;3.牢固掌握建立单链表算法,特别是尾插法建表算法,是很多其他复杂复杂的基础;二、实验项目摘要编写一个程序algo2-2.cpp.实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:1.初始化顺序表h
推荐度:
导读《数据结构》课程实验报告实验名称单链表的基本运算实验序号2实验日期2012-4-8姓名曹志华院系计算机科学与信息工程学院班级101041C1学号1010411501专业计算机科学与技术指导教师武伟成绩教师评语一、实验目的和要求1.了解单链表基本运算的实现;2.进一步掌握链表使用的步骤;3.牢固掌握建立单链表算法,特别是尾插法建表算法,是很多其他复杂复杂的基础;二、实验项目摘要编写一个程序algo2-2.cpp.实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:1.初始化顺序表h
《数据结构》课程实验报告

实验名称单链表的基本运算实验序号2实验日期2012-4-8
姓  名

曹志华院系计算机科学与信息工程学院

班  级

101041C1

学  号

1010411501
专  业

计算机科学与技术指导教师武伟

成 绩

教师评语
一、实验目的和要求

1.了解单链表基本运算的实现;

2.进一步掌握链表使用的步骤;

3.牢固掌握建立单链表算法,特别是尾插法建表算法,是很多其他复杂复杂的基础;

二、实验项目摘要

编写一个程序algo2-2.cpp.实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

1.初始化顺序表h;

2.依次采用尾插法插入a,b,c,d,e元素;

3.输出单链表h;

4.输出单链表h长度;

5.判断单链表h是否为空;

6.输出单链表h的第3个元素;

7.输出元素’a’ 的位置;

8.在第4个元素位置上插入“f”元素;

9.输出单链表h;

10.删除单链表h的第3个元素;

11.输出单链表h;

12.  释放单链表h。

三、实验预习内容

单链表基本运算的实现:单链表中,每一个结点有一个指针域指向直接后继。

●插入结点运算

●删除结点运算

●建立单链表

●线性表基本运算的实现

1.初始化线性表

2.求线性表的长度

3.判断该线性表是否为空

4.销毁线性表

5.求线性表中某个数据元素值

6.按元素查找

7.插入数据元素

8.删除数据元素

9.输出线性表

三、实验结果与分析

   1.  实验结果:

2.实验分析:

这次实验与上次的顺序表很相似,但相比之下,单链表比较难一些,通过这次实验我明白了什么是线性表的链式存储结构,在编写程序时出现了很多错误,但通过看书,查找资料慢慢改进,在改进中也学会了很多,比如了解了单链表基本运算算法的基本格式和构成。虽然有很多不足,但在今后的实验中我会慢慢改进。

3.源程序

 #include 

#include

//#define maxsize 1024

typedef char ElemType;

typedef struct node

{

 

 

}LinkList;

 

//初始化线性表

void InitList (LinkList *&h)

{

 

 

}

//求线性表的长度 

int ListLength(LinkList *h) 

{

 

 

 

 

     i++;

     p=p->next;

 

 

}

//求出线性表中第i个元素

int GetElem(LinkList *h,int i,ElemType &e) 

{

 

 

 

 

 

 

     p=p->next;

     j++;

 

 

 

}

//判断单链表是否为空

 int ListEmpty (LinkList *h)

 {

     return(h->next==NULL);

 }

 //输出元素的位置(按元素值查找) 

 int LocateElem(LinkList *h,ElemType e) 

 {

 

 

     

 

     p=p->next;

     i++;

 

 

 

 

 

 }

 

 //插入数据元素

 int ListInsert(LinkList *&h,int i,ElemType e) 

 {

     int j=0;

     LinkList *p=h,*s;

     while(j     {

      j++;

      p=p->next;

      

 

 

 

     return 0;

     else 

      {

       s=(LinkList *)malloc(sizeof(LinkList));

       s->data=e;

       s->next=p->next;

       p->next=s;

       return 1;

      }

 

 }

 //删除数据元素

 int ListDelete (LinkList *&h,int i,ElemType &e) 

 {

     int j=0;

     LinkList *p=h,*q ;

     while(j     {

 

 

 

 

 

 

 

     q=p->next;

     if(q==NULL) return 0;

     e=q->data;

     p->next=q->next;

     free(q);

     return 1;

 

 }

 //销毁线性表

 int DestroyList(LinkList *&h)

 {

     LinkList *p=h,*q=p->next;

     while(q!=NULL)

     {

      free(p);

      p=q;

      q=p->next;

 } 

 free(p);

 }

 

//输出线性表

int DispList (LinkList *h)

{

 

 

 

     printf("%c",p->data);

     p=p->next;

 

 

//主函数 

void main()

{

 

 

 

 初始化单链表h 

 初始化顺序表\\n");

 

 

 采用尾插法插入a,b,c,d,e元素\\n") ;

 插入元素 

 

 

 

 

     printf("\\n");

 输出单链表h:"); 

 

 

 

 长度:%d\\n",ListLength(h));

 

 单链表h为%s\\n",(ListEmpty(h)?"空":"非空"));

 

 

 单链表h的第3个元素是%c\\n",e);

 

 元素a的位置是第%d个元素\\n",LocateElem(h,'a'));

 

 在第4个元素位置上插入f元素\\n");

 

 

 输出单链表h:");

 

 

 删除h的第3个元素\\n");

 

 

 输出单链表h:");

 

 

 释放单链表h\\n");

 

 

 

注:空间不够,可以增加页码。

文档

数据结构-实验2-单链表的基本运算

《数据结构》课程实验报告实验名称单链表的基本运算实验序号2实验日期2012-4-8姓名曹志华院系计算机科学与信息工程学院班级101041C1学号1010411501专业计算机科学与技术指导教师武伟成绩教师评语一、实验目的和要求1.了解单链表基本运算的实现;2.进一步掌握链表使用的步骤;3.牢固掌握建立单链表算法,特别是尾插法建表算法,是很多其他复杂复杂的基础;二、实验项目摘要编写一个程序algo2-2.cpp.实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:1.初始化顺序表h
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top