• 大小: 3KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: C/C++
  • 标签: C  

资源简介

约瑟夫问题(C语言实现),以后会逐步添加其他实验

资源截图

代码片段和文件信息

 #include
 #include
 /*定义常量*/
 #define TRUE 1
 #define FALSE 0
 #define OK 1
 #define ERROR 0
 #define null 0
 #define INFEASIBLE -1
 #define OVERFLOW -2 
 /*定义类型*/
 typedef int Status;
 typedef int ElemType;
 /*定义节结点类型及双向循环链表的存储结构*/
 typedef struct link{
     ElemType data;
     ElemType number;
     struct link *prior;
     struct link *next;
 }link*linkList;

 Status initList(linkList *L){/*初始化链表*/
     *L=(linkList)malloc(sizeof(link));
     if(*L){
         (*L)->next=(*L)->prior=*L;
         (*L)->data=null;
         return OK;
     }
     else return OVERFLOW;
 }

  Status destroyList(linkList *L){/*销毁链表并将链表返回 */
     linkList qp=(*L)->next;
     while(p!=*L){/*返回表头时结束  */
         q=p->next;                                
         free(p);
         p=q;
     }
     free(*L);
     *L=NULL;                                       
     return OK;
 }

 Status isEmpty(linkList L){/*判断链表是否为空用return返回TRUE或FALSE*/
     return ((L->next==L&&L->prior==L));
 }

 Status insertFirst(linkList LElemType data1ElemType number1){
     /*插入元素并作为第一个结点*/
     linkList newlink=(linkList)malloc(sizeof(link));
     newlink->data=data1;
     newlink->number=number1;
     if(!isEmpty(L)){
         newlink->prior=L;
         newlink->next=L->ne

评论

共有 条评论