数据结构(C语言版) 实验报告 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构(C语言版) 实验报告

专业:计算机科学与技术

学号:_______________________

班级:_______________________

姓名:_______________________

指导教师:___________________

青岛大学信息工程学院

2014年10月

实验1

实验题目:顺序存储结构线性表的插入和删除

实验目的:

了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。

实验主要步骤:

1、分析、理解给出的示例程序。

2、调试程序,并设计输入一组数据(3,-5,6,8,2,-5,4,7,-9),测试程序的如下功

能:根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。

程序代码:

#include

#include

#include

#define OK 1

#define ERROR 0

#define OVERFLOW -2

#define LIST_INIT_SIZE 100

typedef int status;

typedef int ElemType;

typedef struct{

ElemType *elem;

int length;

int listsize;

}sqlist;

status initlist_sq(sqlist &L)

{

L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!L.elem)exit(OVERFLOW);

L.length=0;

L.listsize=LIST_INIT_SIZE;

return OK;

}//initList.sq

status getelem_sq(sqlist &L)

{

int i=0,e,d;

printf("please input how many number you want to init\n");

scanf("%d",&d);

printf("please input the number you want to init\n");

while(1)

{

scanf("%d",&e);

L.elem[i]=e;

L.length++;

i++;

if(i>=d)break;

}

return OK;

}

status listdelet_sq(sqlist &L)

{

int i=0,e;

int *p;

int *q;

printf("please input the number you want to delete\n");

scanf("%d",&e);

for(i=0;i

{

if(L.elem[i]==e)

{

p=&L.elem[i];

q=L.elem+L.length-1;

for(++p;p<=q;++p)

*(p-1)=*p;

--L.length;

break;

}

}

return OK;

}

main()

{

int i=0;

sqlist L;

initlist_sq(L);

getelem_sq(L);

listdelet_sq(L);

while(i

{

printf("%4d",L.elem[i]);

i++;

}

}

实验结果:

心得体会:

经过这次了解和掌握了线性表的逻辑结构和顺序存储结构,明白了线性表的基本算法。

实验2

实验题目:单链表的插入和删除

实验目的:

了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为字符类型的单链表,在链表中不允许有重复的字符;根据输入的字符,先找到相应的结点,后删除之。

实验主要步骤:

3、分析、理解给出的示例程序。

4、调试程序,并设计输入数据(如:A,C,E,F,H,J,Q,M),测试程序的如下功能:

不允许重复字符的插入;根据输入的字符,找到相应的结点并删除。

5、修改程序:

(1)增加插入结点的功能。

(2)建立链表的方法有“前插”、“后插”法。

程序代码:

实验结果:

心得体会:

实验3

实验题目:栈操作设计和实现

实验目的:

1、掌握栈的顺序存储结构和链式存储结构,以便在实际中灵活应用。

2、掌握栈的特点,即后进先出和先进先出的原则。

3、掌握栈的基本运算,如:入栈与出栈等运算在顺序存储结构和链式存储结构上的实现。

实验要求:

回文判断:对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。

实验主要步骤

(1)数据从键盘读入;

(2)输出要判断的字符串;

(3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。

程序代码:

实验结果:

心得体会:

相关文档
最新文档