数据结构实验报告
姓名:韦勇
学号:149074165
班级:软件工程141班
学院:计算机科学与技术学院
实验时间:2016
指导老师:陈学进
实验一约瑟夫问题实现
1、实验目的
1)掌握线性表的两类存储结构(顺序存储结构和链式存储结构)的描述方法。 2)掌握在顺序结构中实现查找、插入、删除操作的基本方法。 3)掌握在各种链表结构中实现查找、插入、删除操作的基本方法
2、实验内容
设有n个人围坐在一圈,现从指定的第个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列,如此重复,直到所有的人全部出列为止。
3、实验要求
针对实验内容,认真设计算法,上机过程中,能够熟练运用高级语言的程序调试器DEBUG调试程序,上机后,认真整理源程序及其注释,完成实验报告(包括源程序、实验结果、算法分析、心得体会等) 顺序结构:#include \#include \#define MAXSIZE 100 typedef struct node{
int data[MAXSIZE]; int length;
}SeqList,*PSeqList; int Delete(PSeqList PL,int i) {
int j; if(!PL) { }
printf(\表不存在\return (-1);
}
if(i<1||i>PL->length) {
printf(\删除位置不合法\
return(0); }
for(j=i;j
PL->length--; return(1);
PSeqList Init(void) {
return PL; }
}
PL->length++; int n,i; PSeqList PL;
PL=(PSeqList)malloc(sizeof(SeqList)); if(PL) {PL->length=0;} printf(\请输入圆桌人数:\\n\scanf(\if(n>MAXSIZE)
printf(\溢出\
for(i=0;i PL->data[i]=i; int josephus(PSeqList josephus,int s,int m)/*josephus为顺序表,s为首位置,m为计数值*/ { } int main() { PSeqList PL; int m,n; PL=Init(); printf(\请分别输入起始序号和计数值:\\n\ } return(1); s1=(s1+m-1)%i; w=josephus->data[s1]; printf(\Delete(josephus,s1+1); int s1,i,w; if(!josephus->length) { } s1=s-1; printf(\输出约瑟夫序列:\\n\for(i=josephus->length;i>0;i--) { printf(\表中无元素\return(0); scanf(\ josephus(PL,4,3); return(0); } 链式结构:#include int data; struct node* next; }Lnode,*Linklist; /*创建一个单链表并初始化*/ Linklist create(int n) /*此函数带回一个指向链表头的指针*/ { int i; Linklist head; Linklist p1,p2; p1=p2=(Linklist)malloc(sizeof(Lnode)); /*开辟一个新单元*/ p1->data=0; head=p1; for(i=1;i p2=p1; p1=(Linklist)malloc(sizeof(Lnode)); p1->data=i; 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构实验报告(全)安工大在线全文阅读。
相关推荐: