数据结构线性表

发布 2019-09-12 05:10:00 阅读 4558

数据结构实验报告。

实验名称:线性表。

信息与通信学院,电子信息工程专业。

作者:周裕娟 ,学号:0800220308

实验日期:2023年11月4日。

一、 实验目的。

1、 掌握线性表的顺序存储结构。

2、 掌握顺序表的基本运算并能灵活运用。

3、 掌握线性表的链式存储结构。

4、 掌握链表的基本运算并能灵活应用。

二、 实验要求。

1、 了解线性表中数据元素之间的逻辑关系以及在计算机中表示这种关系的两种不同的存储结构,即顺序存储结构和链式存储结构;

2、 熟练掌握这两种存储结构的描述方法,如链表中的头结点、头指针和首元结点、尾元结点的区别及循环链表、双向链表的特点等;

3、 熟练掌握在顺序存储结构上实现线性表基本运算的方法,特别是插入、删除与定位等运算;

4、熟练掌握在各种链表上实现线性表基本运算的方法,能在实际应用中选用适当的链表结构;

5、能够从时间和空间复杂度的角度比较线性表两种存储结构的不同特点及使用场合;

三、 实验重点难点。

重点 :是熟练掌握用顺序表和单链表实现的各种基本算法及相关的时间性能分析。

难点 :是能够使用本章所学到的基本知识设计有效算法解决与线性表相关的应用问题。

四、 实验内容。

1. 顺序表逆置,利用原表的存储空间将线性表(a1,a2,…,an)逆置为(an,an-1,…,a1),并且此处要求只使用一个元素的辅助空间。

* -hello, world */

#include ""

#include ""

#define maxsize 100 /*顺序表的最大长度 */

typedef int elemtype; /elemtype 为顺序表元素的类型 */

typedef struct

void creat_sqlist(sqlist *l,int n)

void print_sqlist(sqlist *l)

main()

sqlist a;

int n;

printf("enter n:")

scanf("%d",&n);

creat_sqlist(&a,n);

reverse_sqlist(&a);

print_sqlist(&a);

getch();

2. 求两个一元多项式a(x)=a0+a1x+a2x2… +anxn 和b(x)=b0+b1x+b2x2… +bmxm的和。分别输入两个多项式的系数和指数; 输出多项式的和。

* 标准文档模板 */

#include ""

#include <

#include <>

#include <>

typedef struct plnode

plinklist addpolyn(plinklist la,plinklist lb)

if(pb) pc->next=pb;

while(pc)

lc->coef=len; /头指针系数为总项数 */

free(lb);

return lc;

void printpoly(plinklist q){

if(q->expn==0)

printf("%0f",q->coef);

else if(q->expn==1){

if(q->coef==1)

printf("x");

else if(q->coef==-1)

printf("-x");

else{

printf("%0f",q->coef);

printf("x");

线性表结构

include include define stacksize 16 循环队列长度 define ok 1 define true 1 define false 0 define overflow 1 define underflow 2 define maxsize 100 定义元素类型 typ...

线性表的顺序存储结构

关于线性表的顺序存储结构的表示和实现,基本操作是创建 插入 删除 求某个元素及它的前趋后继 显示等操作。include include include define true 1 define false 0 define ok 1 define error 0 define overflow 2 ...

线性表的顺序存储结构

南昌航空大学实验报告 用实验报告纸,手写 课程名称 数据结构实验名称 实验一线性表的顺序存储结构 班级学生姓名 visual逆学号 指导教师评定签名。原题目 有两张非递减有序的线性学生表a,b,采用顺序存储结构,两张表合并用c表存,要求c仍为非递减有序的,并删除c中值相同的表。本次实验题目 用户任意...