一、约瑟夫问题。
1.算法及数据结构。
由于约瑟夫问题是将x个人围坐一圈,所以采用单循环链表实现,又由于报数时间可能循环到开始,所以采用不带头结点的循环链表结构。
1)在不带头结点的循环链表中查找第y个结点,用p作为第y个节点的指针。
2)每一次都是y的倍数的结点出栈,直到循环到最后一个结点为止。
2.源程序。
#include""
#include""
typedef struct node
int data;
struct node *next;
lnode;//定义循环单链表。
lnode *create(int x)
r->next=h;
return h;//建立偱环单链表。
void jeseph(lnode *p,int y)//y个节点。
lnode *q;
int j=0;
printf("outqueue order:")
do p=p->next;
while(p->next!=p);
printf("%d",p->data);
free(p);
void main()/主函数。
lnode *h;
int y,x;
printf(" input x,y=")
scanf("%d,%d",&x,&y);
h=create(x);
jeseph(h,y);
//凡是报到y的数出来。
3.测试结果。
二、表达式求值。
1.算法及数据结构。
1)首先置操作数栈为空栈,表达式起始符“#”为运算符栈的栈底元素;
2)依次读入表达式中每个字符,若是操作数则进operand,若是运算符则和operator栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕(即operator栈的栈顶元素和当前读入的字符均为“#
2.源程序。
#include<>
#include<>
#include<>
#include<>
#define max_size 256
enum bool;
typedef struct tagoperate;
static int outpriority=
int locate(char ch)
int i=0;
for(i=0;operator[i]!=0';i++)
if(operator[i]==ch)
return i;
return -1;
int isp(char ch)
if('a'<=ch&&'z'>=ch)
return 9;
elsereturn inpriority[locate(ch)];
int icp(char ch)
if('a'<=ch&&'z'>=ch)
return 8;
elsereturn outpriority[locate(ch)];
void _proc(char*src)
char buffer[max_size];
char*p=src,*q=buffer;
*q++=p++;
while('\0'!=p)
*q='\0';
strcpy(src,buffer);
void srcfunproc(char*src)
char buffer[max_size];
char*p=src,*q=buffer;
while(*p!='0')
*q='\0';
strcpy(src,buffer);
void postsrc(char*src,lpoperate lpoperator)
char *p=src,y;
lpoperate lpoptr=lpoperator;
char stack[max_size];
int top=-1;
double operand;
int offset=0;
stack[++top]='#
while('\0'!=p)
elseif('x'==p)
lpoptr++)operator='x';
p++;else
if('p'==p)
lpoptr->operand=3.14159266;
p+=2;lpoptr->operator=0;
lpoptr++;
elsefor(y=stack[top--]isp(y)>icp(*p);y=stack[top--]
lpoptr++)operator=y;
stack[++top]=y;
stack[++top]=*p++;
while(top!=-1)
(lpoptr++)operator=stack[top--]
int isdigit(char ch)
算法与数据结构课程设计
编号 120 说明书。进销存货物管理系统。学院 计算机科学与工程学院 专业 计算机科学与技术 学生姓名。学号。指导教师。2016年 6 月 26 日。摘要。本课程设计报告系统地阐述了我使用c 编写的进销存货物管理系统。首先,我对系统进行一个简要的概述。然后,我就系统的需求进行了详细的分析,这是设计工...
算法与数据结构课程设计报告
福建工程学院软件学院。题目。专业。姓名。学号。同组其他学生 学号。2015年月日。目录。一 需求分析 3 二 总体设计 3 三 详细设计 3 四 调试与测试 3 五 测试结果 3 六 用户手册 3 七 附录 3 描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。二 总体设计。必须包含程序设...
《数据结构与算法课程设计》报告
你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。命运如同手中的掌纹,无论多曲折,终掌握在自己手中。数据结构与算法课程设计 harbin institute of technology 数据结构与算法。课程设计报告。2014年度秋季学期 设计题目。小组成员 11337...