算法与数据结构课程设计报告
《算法与数据结构课程设计报告》由会员分享,可在线阅读,更多相关《算法与数据结构课程设计报告(8页珍藏版)》请在毕设资料网上搜索。
1、 算法与数据结构课程设计报告算法与数据结构课程设计报告 专业:专业: 计算机科学与技术计算机科学与技术 学号:学号: 姓名:姓名: 题目:题目:1.用链表求解约瑟夫问题。用链表求解约瑟夫问题。 算法思路:由于约瑟夫问题是 n个人围坐一圈,所以采用偱环链表实现,又由于 报数时可能循环到开始,所以采用不带头结点的循环链表结构。 算法步骤: a 在不带头结点的循环链表中查找第 s 个结点的指针。 b 从 p 所指胡结点开始计数查找第 m个结点,pre 指向 p 的前驱。 c 输出该结点元素值。 D 删除该结点,同时将该结点下一结点指针作为当前指针即 p 指针,重复到步骤 b,直到链表中所有结点都被删
2、除完为止。 算法分析:算法分析: int josephus_LinkList (LinkList josephus_Link,int s,int m) LinkList p,pre; int count; if(!josephus_Link) printf(“表中无元素”); Return(0); P=josephus_Link; For(count=1;countnext; printf(“输入约瑟夫序列:”); while(p!=p-next) for(count=1;countnext; printf(“%dt”,p-data); pre-next=p-next; free(p); p=
3、pre-next; printf(“%dt”,p-data); free(p); return 1; 程序源代码程序源代码: #include“stdlib.h“ #include“stdio.h“ typedef struct node int data; struct node *next; Lnode; Lnode *create(int n) int i; Lnode*h,*p,*r=(Lnode*)malloc(sizeof(Lnode) ; r-data=n;h=r; for(i=n-1;i0;i-) p=(Lnode*)malloc(sizeof(Lnode); p-data=i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 数据结构 课程设计 报告
