《算法与数据结构》课程设计。
年级:11届。
专业:计算机科学与技术
班级:1班。
姓名:杨阳。
学号:110310136
用链表求解约瑟夫问题。
1算法思路:由于约瑟夫问题n个人围坐一圈,所以采用循环表实现,又由于报数时可能循环到开始,所以采用不带头结点的循环链表结构。
2算法步骤:
1) 在不带头结点的循环链表中查找第s个结点,用p作为第s歌结点的指针。
2) 从p所指的结点开始计数查找第m歌结点,pre指向p的前驱。
3) 输出该结点元素值。
4) 删除该结点,同时将该结点下一结点指针作为当前指针即p指针,重复道步骤2,知道链表中所有解思安都被删除为止。
3程序如下:
#include""
#include""
typedef struct node
int data;
struct node *next;
lnode;
lnode *create(int n)
r->next=h;
return h;
void jeseph(lnode *p,int m)
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 m,n;
printf(" input n,m=")
scanf("%d,%d",&n,&m);
h=create(n);
jeseph(h,m);
例3.3表达式求职。
1.算法分析:中缀表示:《操作数》《运算符》《操作数》
2.算法步骤:
3.程序如下:
#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)
if(('0'<=ch&&'9'>=ch)||ch)
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 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 初始化时每个方格都是关闭的,一个...