⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 josephus.c

📁 数据结构 c语言版 约瑟夫问题 顺序表方法实现
💻 C
字号:

#include <stdio.h>
#include "opreations.h"

int main()
		{
			Sqlist L[ MAX_LISTS ];
			char choice;										// 记录选择的操作
			int  sum_lists=0;
			printf	(	"\n请先创建一个顺序表。最多可以创建 %u 个顺序表。\n", MAX_LISTS );

			while	(	choice = menu() )						// 根据输入选择函数运行
					{ 
						switch ( choice )
							{
								case 1 :{
											int mun=sum_lists;													
											init_list(&L[mun]);
											printf("\n请为该顺序表添加元素:\n");
											printf("输入   存储\n");
											input_elem(&L[mun]);
											sum_lists++;
											break;
										}
								case 2 :{
											int mun,i,m;
											printf("\n请选择你要操作的顺序表: ");
											scanf("%d",&mun);
											printf("\n请选择你插入位置:  ");
											scanf("%d",&i);
											printf("\n每次一个数据请输入插入的数据: ");
											scanf("%d",&m);
											insert_elem(&L[mun-1],i,m);
											break;
										}
								case 3 :{
											int mun,i;
											ElemType e=1;
											printf("\n请选择你要操作的顺序表: ");
											scanf("%d",&mun);
											printf("\n每次只能删除一个数据,请输入删除数据的位置: ");												
											scanf("%d",&i);
											delete_elem(&L[mun-1],i,e);
											break;
										}
								case 4 :{
											int	mun;
											AAA:	printf("\n请选择你要操作的顺序表: ");
											scanf("%d",&mun);
										if (mun>sum_lists) 
												{
													puts("******请输入一个有效数字******");
													goto AAA;
												}
										if (mun=sum_lists)
												{
													sum_lists--;
												}
										else if (mun<sum_lists)
												{
													int i;
													for(i=mun-1;i<sum_lists-1;i++)
														{
															fuzhi(&L[i],&L[i+1]);
														}
													sum_lists--;
												}
										break;										
										}
								case 5 :{	
											Sqlist A;
											int mun,i,n,j,ch;
											init_list(&A);
											printf("\n请选择你要操作的顺序表: ");
											scanf("%d",&mun);											
											i=L[mun-1].length;
											fuzhi(&A,&L[mun-1]);
											printf( "\n原表为:");
											for ( j = 0; j < i; j++ ) 
												printf( "%d  ",A.data[j]);
											printf("\n输入你出列的数字:");
											scanf("%d",&ch);
											n=ch;
											josephus(&A,i,n);
											break;
										}
								default: break;
							}						
						output_list(L,sum_lists);
					}
			puts("\n感谢老师的指点!请按回车退出...");
			getchar();
			return 0;
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -