程序设计课程设计报告Word下载.docx

上传人:b****3 文档编号:16799794 上传时间:2022-11-26 格式:DOCX 页数:7 大小:57.95KB
下载 相关 举报
程序设计课程设计报告Word下载.docx_第1页
第1页 / 共7页
程序设计课程设计报告Word下载.docx_第2页
第2页 / 共7页
程序设计课程设计报告Word下载.docx_第3页
第3页 / 共7页
程序设计课程设计报告Word下载.docx_第4页
第4页 / 共7页
程序设计课程设计报告Word下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

程序设计课程设计报告Word下载.docx

《程序设计课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《程序设计课程设计报告Word下载.docx(7页珍藏版)》请在冰豆网上搜索。

程序设计课程设计报告Word下载.docx

一直报到k,凡报到k的人出列。

试输出该问题中顺序出列的人的名字。

二、功能描述

创建单循环链表函数:

chain*circulchain(char

*ch)

销毁链表:

voidDestroy(chain*head)显示链表中每个结点的数据:

voidShow(chain^head)

插入结点函数:

voidAddNode(chain*head,charx,chary)

删除结点函数:

voidDeleNode(chain*head,charx)

三、程序实现

1、单链表的基本操作:

#include<

iostream>

usingnamespacestd;

structchain

{

chardata;

chain*next;

};

chain*crechain(char*ch)〃创建单链表

inti;

chain*head=NULL,*p=NULL,*q=

NULL;

for(i=0;

ch[i]!

=W;

i++){

p=newchain;

p->

data=ch[i];

if(head==NULL)

head=p;

}

else

q->

next=p;

q=P;

q・>

next=NULL;

return(head);

voidAddNode(chaincharx,chary)/*

插入结点*/

chain*s;

cout«

1f链表为空!

1vendl;

r=head;

while(r!

=NULL)

if(r->

data!

=x)

r=r->

next;

elsebreak;

if(r==NULL)

"

没有数据为x的节点!

endl;

s=newchain;

s->

data=y;

next=r->

r->

next=s;

voidDeleNode(chain*head,charx)/*删除结点*/

chain*p=head,*s;

'

vvendl;

if(head->

data==x)

head=p->

deletep;

while(p->

next!

=NULL){

if(p->

next->

=x)p=p->

s=p->

p->

next=s->

deletes;

break;

}voidShow(chain*head)//输出链表{

chain*p;

p=head;

while(p!

data;

p=p->

H\nH;

voidDestroy(chain*head)〃销毁链表

while(head!

head=p->

deletep;

}intmain()

chain*head;

head=crechain(Habcdn);

Show(head);

AddNode(head,T);

DeleNode(headJc'

);

Destroy(head);

return0;

2、单循环链表:

chain*circulchain(char*ch)

chain*head=NULL,*p=NULL,NULL,*r;

for(i=0;

i++)

q->

next=p;

q=p;

next=head;

return(head);

3、约瑟夫问题:

#include<

structJoseph

charch;

Joseph*next;

};

Joseph*head,//Joseph结构指针,全局变量

voidcreate(intn)〃给每个结点数据赋值{

Joseph*q;

p=(Joseph*)malloc(sizeof(Joseph));

ch='

A'

;

next=NULL;

for(i=1;

i<

n;

〃将p结点加到链表尾部

〃让q指向链表尾部结

ch=A+i;

q->

tail=q;

tail->

next=head;

voidDisplay(intm)〃依次输出出列的人的名字

intx=0;

q=tail;

do

p=q->

next;

//p赋值为q相邻的

下一个结点

X++;

if(x%m==0)

n出列的人为"

vvp->

chvvendl;

next=p->

p=NULL;

elseq=p;

〃q指向相邻的下一

结点p

while(q!

=q->

next);

〃剩余结点数不为1,

则继续循环

head=q;

intn,m;

head=NULL;

cin»

n;

f请输入间隔\n"

cin»

m;

create(n);

Display(m);

coutvv"

最后一个人是"

vvhead・>

chvvendl;

deletehead;

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

当前位置:首页 > 考试认证 > 其它考试

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

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