云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 计算机软件技术基础实验报告

计算机软件技术基础实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/6/25 17:05:18

实验一 线性表的基本操作

据结构,以及它们之间的关系。

一、实验目的与基本要求

1.掌握数据结构中的一些基本概念。数据、数据项、数据元素、数据类型和数2.了解数据的逻辑结构和数据的存储结构之间的区别与联系;数据的运算与数据的逻辑结构的关系。

3.掌握线性表的基本操作:插入、删除、查找以及线性表的合并等运算。 4.掌握运用C语言上机调试线性表的基本方法。

二、实验条件

1.硬件:一台微机

2.软件:操作系统和C语言系统

三、实验方法

确定存储结构后,上机调试实现线性表的基本运算。

四、实验内容

1.试编写在无头结点的单链表上实现线性表基本运算LOCATE(L,X),INSERT(L,X,1)和DELETE(L,1)的算法。

2.假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作为存储结构。编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表)结点空间存放表C。

3.将一个线性表中的值就地逆置。

4.在线性表的顺序存储结构的第一个位置上插入一个元素。 (注意区分链表和顺序表)

实验代码:

#include\#include\

struct node //定义结构体 {

1

int d;

struct node *next; };

struct node *head1,*head2,*p,*q;

void pre(struct node *head) //打印数据 {

printf(\链表中的数据为:\\n\); p=head; while(p!=NULL) {

printf(\,p->d); q=p;p=p->next; }

printf(\); }

struct node *creat() //建立链表 {struct node *head;

int x;

printf(\输入你要储存的数据:\\n\); head=NULL; q=NULL; scanf(\,&x); while(x>0) {

p=(struct node *)malloc(sizeof(struct node)); p->d=x; p->next=NULL;

if(head==NULL) head=p; else q->next=p; q=p;

scanf(\,&x); getchar(); }

pre(head); return (head); }

void locate(struct node *head,int x) //查找链表中的数据 {

int u=1; p=head;

2

while (p->next!= NULL) {if (p->d==x) break; else

{ p=p->next;u++;} }

if(p->d!= x) printf(\无此结点\);

printf(\在链表中的位置为:\); printf(\,u); }

void insert(struct node *head,int x, int i) //插入数据 { p = head;int j=1;

q=(struct node *)malloc(sizeof(struct node)); q->d=x; if(i==1)

{ q->next=head; head=q; } else {

while((jnext !=NULL)) {j++;p=p->next;} q->next=p->next; p->next=q;} }

void delet(struct node *head,int i) //删除数据 { p=head;int j=1;

if(i<0) printf(\无此位置\); if(i==1)

{q=head; head=head->next; free(q); } else {

while((jnext != NULL)) { p=p->next;j++;} q=p->next;

p->next=q->next; }

free(q);}

3

void hebing(struct node *x,struct node *y) //合并两个链表 { p=x; q=y;

while(p->next!=NULL) p=p->next; p->next=q; pre(x); }

void paixu(struct node *head) //对链表中的数据进行排序 {int m,n,i=1,t; p=head;

while(p->next!=NULL) {p=p->next;i++;} p=head;

for(n=i;n>1;n--) {p=head;

for(m=1;m

q=p->next; if(p->dd) {t=p->d; p->d=q->d; q->d=t; }

p=p->next; } } }

void caozuo(struct node *head) //操作界面 {

int m,n;char t;

printf(\输入你要的操作:,查找 2,插入 3,删除\\n\); scanf(\,&t); switch(t) { case '1':

{printf(\输入你要查找的元素的值:\\n\); locate(head,m);}break;

{printf(\输入你要插入的元素的值和位置:\\n\); scanf(\,&m); case '2':

4

搜索更多关于: 计算机软件技术基础实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验一 线性表的基本操作 据结构,以及它们之间的关系。 一、实验目的与基本要求 1.掌握数据结构中的一些基本概念。数据、数据项、数据元素、数据类型和数2.了解数据的逻辑结构和数据的存储结构之间的区别与联系;数据的运算与数据的逻辑结构的关系。 3.掌握线性表的基本操作:插入、删除、查找以及线性表的合并等运算。 4.掌握运用C语言上机调试线性表的基本方法。 二、实验条件 1.硬件:一台微机 2.软件:操作系统和C语言系统 三、实验方法 确定存储结构后,上机调试实现线性表的基本运算。 四、实验内容 1.试编写在无头结点的单链表上实现线性表基本运算LOCATE(L,X),INSERT(L,X,1)和

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com