- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告
题目
线性表
班级:
网络工程 1401班
学号:
1408020106
指导教师: 高峰
日期:
2016/7/6
实验一: 线性表
一:实验要求
掌握数据结构中线性表的基本概念。
熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及 合并并运算在顺序存储结构撒谎能够的实验。
熟练掌握链表的各种操作和应用。
二.实验内容
编程实现在顺序存储的有序表中插入一个元素(数据类型为整型) 。
编程实现把顺序表中从 i 个元素开始的 k 个元素删除(数据类型为整型) 。
三:实验过程及步骤
源代码:
#include<stdio.h>
#include<malloc.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{
int * elem;
int length;
int listsize;
}SqList;
//SqList sq;
void InitList_Sq(SqList *sq) // 初始化列表
{
sq->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
sq->length=0;
sq->listsize=LIST_INIT_SIZE;
printf("--- 申请空间成功 ---!\n");
}
void GetElem(SqList *sq,int i)// 获取第 i 位置元素的值
{
int *p;
p=&(sq->elem[i-1]); printf("%d",*p); printf("\n");
}
int ListInsert_Sq(SqList *sq,int i,int a)// 在 i 位置之前插入 a
{
int *p,*q;
if(i<=0||i>sq->length+1)
{
printf("--- 位置不合法 ---!\n");
return 0;
}
if(sq->length>=sq->listsize)
{
int* newbase=(int *)realloc(sq->elem,(sq->listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) printf(" 申请空间溢出 \n"); return 0;
} sq->elem=newbase; sq->listsize+=LISTINCREMENT;
}
p=&(sq->elem[i-1]);//p 指向第 i 位置的元素 q=&(sq->elem[sq->length-1]);//q 指向最后一个元素 for(;q>=p;--q) *(q+1)=*q;
*p=a;
++sq->length;
return 1;
}
删除 i 位置上的值int ListDelete_Sq(SqList *sq,int i)
删除 i 位置上的值
int *p,*q;
if(i<1||i>sq->length) return 0;
p=&(sq->elem[i-1]);//p 指向第 i 位置的元素
q=sq->elem+sq->length-1;//q 指向最后一个元素
for(++p;p<=q;++p)
{
*(p-1)=*p;
}
--sq->length;
return 1;
输出数据}
输出数据
void visit(SqList *sq)//
{
int i=1;
for(;i<=sq->length;i++)
{
int *p;
p=&sq->elem[i-1];
printf("%d",*p); printf(" ");
}
void main()
{
int i=1,a=0,boo=1,number=0;
SqList s,*sq; sq=&s;
InitList_Sq(sq); printf(" 初始化空表 \n"); printf(" 输入数据个数: \n"); scanf("%d",&number);
prin tf(" 输入 %d(数据:”,n umber);
printf("\n");
for(;i<=number;i++)
{ scanf("%d",&a);
if(boo=ListInsert_Sq(sq,i,a))
{
printf("--- 插入成功! ---\n");
}
else
{
printf("--- 插入不成功 , 重新插入 --- ! \n");
i=i-1;
}
}
printf(" 输出所有元素 \n"); visit(sq);
printf("\n"); printf(" 输出删除的位置 :"); scanf("%d",&a);
if(boo=ListDelete_Sq(sq,a))
1亿VIP精品文档
相关文档
最近下载
- (2023)党章党规党纪知识竞赛题库附含答案 .pdf VIP
- 神州专车电子行程单(可修改)报销神器.docx
- 2024年水利部信息中心(水利部水文水资源监测预报中心)招聘5人高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 安全生产数据采集-第2部分-煤矿指标.docx VIP
- 详解2024年《党纪学习教育》.ppt VIP
- 杨署东《国际法》课件5——国际法上的居民.ppt
- 2023学堂在线《中国建筑史——史前至两宋辽金》课后作业单元考核答案.docx
- 数学人教版九年级下册关于八年级下册课本第69页第14题的探究与思考.docx
- 泛血管疾病抗栓治疗中国专家共识2024版解读PPT课件.pptx VIP
- 幼儿园环保教育现状的调查研究——以XX幼儿园为例.doc
文档评论(0)