数据结构课内实验报告.docx

上传人:b****6 文档编号:7534556 上传时间:2023-01-24 格式:DOCX 页数:8 大小:78.22KB
下载 相关 举报
数据结构课内实验报告.docx_第1页
第1页 / 共8页
数据结构课内实验报告.docx_第2页
第2页 / 共8页
数据结构课内实验报告.docx_第3页
第3页 / 共8页
数据结构课内实验报告.docx_第4页
第4页 / 共8页
数据结构课内实验报告.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

数据结构课内实验报告.docx

《数据结构课内实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构课内实验报告.docx(8页珍藏版)》请在冰豆网上搜索。

数据结构课内实验报告.docx

数据结构课内实验报告

 

数据结构课内实验报告

 

2013年11月22日

目录

实验一结构体编程1

1算法思想描述1

2操作算法的实1

3主测试程序1

4运行结果2

实验二线性表3

1算法思想描述3

2操作算法的实现3

3主测试程序5

4运行结果5

实验三堆栈6

1算法思想描述6

2操作算法的实现6

3主测试程序7

4运行结果7

实验四队列7

1算法思想描述7

2操作算法的实现7

3主测试程序8

4运行结果8

实验一结构体编程

1实验内容

编程在屏幕上模拟一个秒表的显示。

要求:

秒表对应的数据类型用结构体定义,关于秒表的三个函数功能为:

更新秒表时间、显示秒表时间、设置秒表间隔。

2算法思想描述

3操作算法的实

4主测试程序

#include

#include

structclock

{

inthour;

intminute;

intsecond;

};

structclockCLOCK;

voidUpdate(void)

{

CLOCK.second++;

if(CLOCK.second==60)

{

CLOCK.second=0;

CLOCK.minute++;

}

if(CLOCK.minute==60)

{

CLOCK.minute=0;

CLOCK.hour++;

}

if(CLOCK.hour==24)

{

CLOCK.hour=0;

}

}

voidDisplay(void)

{

printf("%2d:

%2d:

%2d\r",CLOCK.hour,CLOCK.minute,CLOCK.second);

}

voidDelay(void)

{

longt;

for(t=0;t<500000;t++)

{

}

}

main()

{

longi;

CLOCK.hour=CLOCK.minute=CLOCK.second=0;

for(i=0;i<1000;i++)

{

Update();

Display();

Delay();

if(i==1000-1)

{

printf("%2d:

%2d:

%2d\r\n",CLOCK.hour,CLOCK.minute,CLOCK.second);

system("pause");

}

}

}

5运行结果

实验二线性表

1实验内容

编写不带头结点单链表的插入操作和删除操作算法。

2算法思想描述

3操作算法的实现

#include

#include

structclist

{

intnum;

structclist*next;

};

typedefstructclistnode;

typedefnode*clink;

voidPrintlist(clinkhead)

{

clinkptr;

if(head==NULL)

{

printf("\n");

}

else

{

ptr=head;

do

{

ptr=ptr->next;

printf("[%d]",ptr->num);

}while(ptr!

=head);

printf("\n");

}

}

clinkInsertnode(clinkhead,clinkptr,intx)

{

clinknewnode;

newnode=(clink)malloc(sizeof(node));

if(!

newnode)

{

returnNULL;

}

newnode->num=x;

newnode->next=NULL;

if(head==NULL)

{

head=newnode;

newnode->next=head;

}

else

{

if(ptr==NULL)

{

newnode->next=head->next;

head->next=newnode;

}

else

{

newnode->next=head->next->next;

head->next->next=newnode;

}

}

returnhead;

}

clinkFindnode(clinkhead,intx)

{

clinkptr,ptr1;

ptr1=NULL;

if(head==NULL)

{

returnNULL;

}

else

{

ptr=head;

do

{

if(ptr->num==x)

{

ptr1=ptr;

break;

}

ptr=ptr->next;

}while(ptr!

=head);

returnptr1;

}

}

clinkDeletnode(clinkhead,clinkptr)

{

clinkptr1;

ptr1=head;

if(head->next==head)

{

head=NULL;

}

else

{

while(ptr1->next!

=ptr)

{

ptr1=ptr1->next;

}

ptr1->next=ptr1->next->next;

if(ptr==head)

{

head=ptr1;

}

}

returnhead;

}

voidFreelist(clinkhead)

{

clinkptr,ptr1;

ptr1=head;

do

{

ptr=head->next;

head=head->next->next;

free(ptr);

}while(ptr!

=ptr1);

}

voidmain()

{

intarry[6]={9,7,3,4,5,6};

inti,num;

clinkhead,ptr;

head=NULL;

head=Insertnode(head,head,arry[0]);

if(!

head)

{

printf("内存分配错误\n");

exit

(1);

}

printf("创建第一节点-->");

Printlist(head);

head=Insertnode(head,NULL,arry[1]);

printf("插入第一节点钱-->");

Printlist(head);

for(i=2;i<6;i++)

{

head=Insertnode(head,head,arry[i]);

printf("插入节点之后");

Printlist(head);

}

while

(1)

{

printf("请输入查询值-->");

scanf("%d",&num);

if(num<0)

{

exit

(1);

}

else

{

ptr=Findnode(head,num);

if(ptr==NULL)

{

printf("找不到相应的编号\n");

continue;

}

head=Deletnode(head,ptr);

printf("删除后的链表-->");

Printlist(head);

}

}

Freelist(head);

}

4主测试程序

5运行结果

 

实验三堆栈

1实验内容

编写一算法实现对于键盘输入的任意一个非负的十进制整数,打印输出与其等值的八进制整数。

2算法思想描述

3操作算法的实现

#include

intresult[10]={0};

intindex=0;

//十进制和8进制的转换

voidzhuan(intn,intjin)

{

while(n>0)

{

result[index++]=n%jin;

n=n/jin;

}

}

intmain(intargc,char*argv[])

{

intx,y;

printf("请输入十进制数和转换进制:

");

scanf("%d%d",&x,&y);

zhuan(x,y);

//从高位输出

for(intj=index-1;j>=0;j--)

printf("%d",result[j]);

printf("\n");

}

4主测试程序

5运行结果

实验四队列

1实验内容

编程序判断一个字符序列是否是回文。

2算法思想描述

3操作算法的实现

#include

#include

voidmain()

{

chars[81];

inti;

gets(s);

for(i=0;i

if(s[i]!

=s[strlen(s)-1-i])break;

if(i>=strlen(s)/2)

printf("yes!

\n");

else

printf("no!

\n");

}

4主测试程序

5运行结果

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1