数据结构课程设计

发布 2022-10-01 20:41:28 阅读 6112

本科课程设计报告。

数据结构》课程设计。

院 (系) 理学院。

专业信息与计算科学。

学生姓名谢路辉。

学号 2008304502222

任课教师陆子强。

提交日期 2010-2-27

一、单链表的操作。

课本的实验题2.2.

注意:1. 每个过程要显示出各种提示信息。如:要求输出单链表的长度,则要显示:当前单链表的长度为:5.

2. 可以自行增加一些功能。如头插法等。

特点:增加了头插法建立单链表,比较了头插法和尾插法两种方法建立起来的单链表各种运算所得到的不同值。

#include<>

typedef char elemtype ;

typedef struct lnode定义单链表结点类型。

elemtype data;

struct lnode *next;

linklist ;

void frontcreatelist(linklist *&l,elemtype a,int n)//尾插法建立单链表。

linklist *s,*r; int i;

l=new linklist ; r=l;

for (i=0;i

void initlist(linklist *&l初始化单链表(创建头结点)

l=new linklist;

l->next=null;

void destroylist(linklist *&l销毁单链表。

linklist *p=l,*q=p->next;

while (q!=null)

delete (p);

p=q;q=p->next;

delete(p删除头结点。

int listempty(linklist *l判断单链表是否为空。

return(l->next==null);

int listlength(linklist *l求单链表的长度。

linklist *p=l; int n=0;

while (p->next!=null&&p->next->data!='0')

n++ p=p->next ;

return (n);

void displist(linklist *l输出单链表。

linklist *p=l->next;

while (p!=null)

cout<}

int getelem(linklist *l, int i, elemtype &e)//输出单链表的某个元素。

int j=0;

linklist *p=l;

while (j

if (p==null)

return 0;

else int locateelem(linklist *l,elemtype e) /查找某个元素的位置。

linklist *p=l->next; int i=1;

while (p->data!=e&&p!=null)

p=p->next;i++;

if (p==null)

cout<<"不存在这样的元素"< return 0;}

else return (i);

int listinsert(linklist *&l,int i,elemtype e)//在某个位置插入元素。

int j=0;

linklist *p=l,*s;

while (j

if(p==null)

else int listdelete(linklist *&l,int i,elemtype &e) /删除某个元素。

if(p==null)

else e=q->data;

p->next=q->next从单链表中删除*q结点。

delete (q);

return 1;

void main()

linklist *l1, *l2; int n,i=0 ,k=0;elemtype e;

char a[10] ;

cout<<"输入想要插入的单链表如:abcdfse"< while ((a[i]='n')

initlist(l1);

cout<<"尾插法建立单链表:"

displist(l1); cout< cout<<"头插法建立单链表:"

displist(l2); cout< n=listlength(l1);cout<<"单链表的长度是"< n=listempty(l1);

if(n==1)cout<<"这是空单链表";

else cout<<"这不是空单链表";

cout< getelem(l1,3,e);

cout<<"尾插法建立的单链表的第三个元素:"

cout<<"头插法建立的单链表的第三个元素:"

cout< cout<<"头插法建立大单链表元素a的位置是";

cout< cout<<"尾插法在第四个位置上插入f为";

listinsert(l1,4,'f' )

displist(l1); cout< cout<<"头插法在第四个位置上插入f为";

listinsert(l2,4,'f' )

displist(l2); cout< listdelete(l1,3, e);

cout<<"删除尾插法建立的单链表的第三个元素是"< cout<<"删除后的单链表是"< displist(l1); cout< listdelete(l2,3, e);

cout<<"删除头插法建立的单链表的第三个元素是"< cout<<"删除后的单链表是"< displist(l2); cout< destroylist(l1); cout< destroylist(l2); cout<}

二、迷宫问题。

课本的实验题3.5.

注意:1. 迷宫的大小、样式和入口出口自行确定。

2. 先显示出迷宫,然后才显示路径。

#include<>

#define m 4行数。

#define n 4列数。

# define maxsize 100栈最多元素个数。

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...