数据结构课程设计报告

发布 2022-10-05 19:20:28 阅读 3342

1.题目:线性表抽象数据类型的实现。

1.1顺序存储结构抽象数据类型定义。

adt list

数据关系:r1=

基本操作:initlist_sq(sqlist *l)

操作结果:构造一个空的线性表l。

getelem(l,i,&e)

初始条件:线性表l已经存在,1<=i<=listlength(l)

操作结果:用e返回l中第i个数据元素的值。

listinsert(&l,i,e)

初始条件:线性表l已经存在,1<=i<=listlength(l)+1

操作结果:在l中第i个位置前插入新的数据元素 e,l的长度加1

listdelete(&l,i,&e)

初始条件:线性表l已经存在且非空,1<=i<=listlength(l)

操作结果:删除l中第i个数据元素,并用 e返回其值,l的长度减1

listlength(l)

初始条件:线性表l已经存在。

操作结果:返回l中数据元素的个数。

listsize(l)

操作结果:返回l的容量。

adt sqlist

1.2链式存储结构抽象数据类型定义。

adt list

数据关系:r1=

基本操作:linklist *creatl(linklist *l)

初始条件:线性表l已经存在。

操作结果:存储输入的数据元素。

listinsert(&l,i,e)

初始条件:线性表l已经存在,1<=i<=listlength(l)+1

操作结果:在l中第i个位置前插入新的数据元素 e,l的长度加1

listdelete(&l,i,&e)

初始条件:线性表l已经存在且非空,1<=i<=listlength(l)

操作结果:删除l中第i个数据元素,并用 e返回其值,l的长度减1

print(l)

初始条件:线性表l已经存在。

操作结果:输出l中的数据元素。

shen_sort(l)

初始条件:线性表l已经存在。

操作结果:对l中的数据元素排序。

amend(&l)

shen_sort(l)

初始条件:线性表l已经存在。

操作结果:修改l中的数据元素。

free(l)

初始条件:线性表l已经存在。

操作结果:释放l中的数据元素。

adt list

2.存储结构定义。

2.1:顺序存储结构定义。

#define ture 1

#define false 0

#define list_init_size 100

#define list_increment 10

typedef int elemtype;

typedef struct

elemtype *elem;

int length;

int listsize;

sqlist;

2.2:链式存储结构定义。

#define null 0

#define len sizeof(struct list)

#define a struct list

struct list

long num;

int name[8];

struct list *next;};

int count; (求数据元素的个数)

3.算法设计。

3.1:顺序存储结构算法设计。

//建立表。

int initlist_sq(sqlist *l)

l->elem = elemtype*)malloc(list_init_size*sizeof(elemtype));

if(!l->elem) return false;

l->length=0;

l->listsize=list_init_size; return ture;

//插入表。

int listinsert(sqlist *l,int i,elemtype e)

elemtype *p,*q,*newbase;

if (i<1 ||i> l->length+1) return false;

if((l->length)>=l->listsize))

p=&(l->elem[i-1]);

for(q=(&l->elem[l->length-1]);q>=p;--q) *q+1)=*q);

*p=e;++(l->length);}

/删除表。int listdelete(sqlist *l,int i,elemtype *e)

elemtype *p,*q;

if (i<1 ||i> l->length) return false;

p=&(l->elem[i-1]);

e=*p;q=l->elem+l->length-1;

for(++p;p<=q;p++)p-1)=*p);

-(l->length);

//取线性表的元素。

getelem(sqlist l,int i,elemtype *e)

if (i<1 ||i > return false;

e=printf("%d",*e);

/求长度。int listlength(sqlist l)

return }

/求容量。int listsize(sqlist l)

return

3.2:链式存储结构算法设计。

/输入函数。

struct list *creat

a *head,*p,*pt;int length,i;

printf("你要输入的个数:")scanf("%d",&length); count=length;

for(i=1;i<=length;i++)

p=(a *)malloc(len);

if(i==1) head=pt=p; else pt->next=p;pt=p;

printf("第%d个数的位置",i);scanf("%ld",&p->num);

while(p->num>99999||p->num<1)

printf("第%d个数的值",i);scanf("%s",&p->name);}

p->next=null;printf你输入的数据:");

return(head);}

/输出函数。

void print(a *head)

a *p;p=head;

printfn");

printf有%d个数",count);

printf位置数值");

if(head!=null)

dowhile(p!=null);}

else printf("sorry!空表");

printfn");

/位置插入函数

struct list *p_insert(a *head)

a *p1,*p2,*inp;int place,i;

printf("要插入的位置:")scanf("%d",&place);

inp=(a *)malloc(len);

printf("位置");scanf("%ld",&inp->num);

while(inp->num>99999||inp->num<1)

printf("数值");scanf("%s",&inp->name);

p1=head;

for(i=1;inext;}

if(i==1) else

count++;printf按位置插入后结果:");

return(head);}

/排序函数

struct list *shen_sort(a *head)

a *p,*min;int i=1;long m_num;int m_name[8];

p=head;min=head;

for(i=1;i<=count;i++)

p=min->next;

while(p!=null)

p=p->next; }min=min->next;} printf排序后结果:");

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...