数据结构实验答案
更新时间:2023-10-28 20:17:01 阅读量: 综合文库 文档下载
重庆文理学院软件工程学院
实 验 报 告 册
专 业:_____软件工程__ _ 班 级:_____软件工程2班__ _ 学 号:_____201258014054 ___ 姓 名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________
2013年 06 月 25 日
实验序号 1 实验名称 实验一 线性表基本操作 实验地点
实 验 内 容
S-C1303 实验日期 2013年 04月 22日
1. 编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。
2. 编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。 3. 编程序实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成
(an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄)
1.
#include
#define ElemType int
#define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct
{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/
int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList;
#include \#include \
void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i;
l=(SeqList*)malloc(sizeof(SeqList)); printf(\请输入线性表的长度:\ scanf(\ l->last = r-1;
printf(\请输入线性表的各元素值:\\n\ for(i=0; i<=l->last; i++) {
scanf(\ }
px(l,i);
printf(\请输入要插入的值:\\n\ scanf(\
实 验 过 程 及 步 骤
}
void px(SeqList *A,int j) { int i,temp,k; for(i=0;i { for(k=0;k {if(A->elem[i]elem[k]) {temp=A->elem[i]; A->elem[i]=A->elem[k]; A->elem[k]=temp; }} } } 2. #include #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct { ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include \#include \ void px(SeqList *A,int j); int DelList(SeqList *L,int i,SeqList *e,int j) /*在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i的合法取值为1≤i≤L.last+1 */ { int k,a,b,c; if((i<1)||(i>L->last+2)) { printf(\删除位置不合法!\ i++; px(l,i); l->last++; for(i=0; i<=l->last; i++) { printf(\} printf(\ return(ERROR); } if(j>L->last-i) { printf(\删除位置不合法!\ return(ERROR); } for(b=0,a=i-1;aelem[b]=L->elem[a];} e->last=b; /* 将删除的元素存放到e所指向的变量中*/ for(k=i;k+j-1<=L->last;k++) { L->elem[k-1]=L->elem[k+j-1]; }/*将后面的元素依次前移*/ L->last=L->last-j; printf(\删除的元素值为:\ for(c=0;c { printf(\ printf(\ return(OK); } void main() { SeqList *l,*q; int p,r; int i,j,m; l = (SeqList*)malloc(sizeof(SeqList)); q = (SeqList*)malloc(sizeof(SeqList)); printf(\请输入线性表的长度:\ scanf(\ l->last = r-1; printf(\请输入线性表的各元素值:\\n\ for(i=0; i<=l->last; i++) { scanf(\ } px(l,i); for(i=0;i<=r-1;i++) {printf(\ printf(\ printf(\请输入要删除的元素位置(位置+个数):\\n\ scanf(\ m=DelList(l,p,q,j); if(m==0) {printf(\无法删除\ exit(0);} else if(m==1) { printf(\线性表内余下元素为:\\n\ for(i=0;i<=r-j-1;i++) {printf(\ printf(\ } void px(SeqList *A,int j) { int i,temp,k; for(i=0;i { for(k=0;k {if(A->elem[i]elem[k]) {temp=A->elem[i]; A->elem[i]=A->elem[k]; A->elem[k]=temp; }} } printf(\排序完成!\} 3. #include /*#define ElemType char*/ typedef struct Node /*结点类型定义*/ { int num; char name[10]; int age; struct Node * next; }Node, *LinkList; /* LinkList为结构指针类型*/ LinkList CreateFromTail() /*通过键盘输入表中元素值,利用尾插法建单链表,并返回该单链表头指针L*/ { LinkList L; Node *r, *s; int a; char b[10]; int c; int flag =1; /*设置一个标志,初值为1,当输入\时,flag为0,建表结束*/ L=(Node * )malloc(sizeof(Node)); L->next=NULL; /*为头结点分配存储空间,建立空的单链表L*/ r=L; /*r指针动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/ /*循环输入表中元素值,将建立新结点s插入表尾*/ printf(\输入学生的信息:\\n\ printf(\学号 姓名 年龄\\n\
正在阅读:
数据结构实验答案10-28
《我长大了一岁》教学设计03-19
防灾减灾宣传标语03-15
全国2001年新闻采访与写作试题及答案04-08
鹰潭首届青春红歌会主持词04-07
精选-人民教师教育教学心得体会-范文资料04-12
基于2FSK调制解调电路的设计与仿真09-07
《循环小数》教学反思02-07
陪伴作文450字07-12
杨凌奶茶店经营状况调查报告06-30
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- 数据结构
- 答案
- 实验
- 民营企业如何吸引和保留优秀人才毕业论文
- 联想类比法
- 在线作业答案中国石油大学(北京)15秋《公共社交礼仪》第一阶段在线作业100分满分答案
- 变量与函数的应用题
- 统计学习题带答案
- 2017-2018海淀高三第一学期期中物理试题及答案
- 浅谈思想品德教学中学生创新能力的培养
- 房产证英文翻译模板
- 最新初中化学-九年级化学物质构成的奥秘练习题1 精品
- 2012.12.10制度
- 朋辈辅导员工作计划
- 荆州市江陵县农村扶贫开发十二五规划
- 农村社会学形成性考核2
- 从编辑工作的角度谈谈新闻稿件的内容和格式
- 两相步进电机驱动器原理接线说明书
- 马鞍山市第二十二中学2014年寒假家访工作计划 -
- 建筑法规试题与答案(期末试题全套版)
- 广州市珠江新城板块研究分析
- 极地地区太阳方位
- 三字经注音版(A4打印)