最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言用循環(huán)單鏈表實現(xiàn)約瑟夫環(huán)

 更新時間:2021年10月28日 17:09:41   作者:東流長江水  
這篇文章主要為大家詳細(xì)介紹了C語言用循環(huán)單鏈表實現(xiàn)約瑟夫環(huán),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

用循環(huán)單鏈表實現(xiàn)約瑟夫環(huán)(c語言),供大家參考,具體內(nèi)容如下

源代碼如下,采用Dev編譯通過,成功運行,默認(rèn)數(shù)到三出局。

主函數(shù):

main.c文件

#include <stdio.h>
#include "head.h"
#include "1.h"


int main() 
{
    Linklist L;
    int n;
    printf("請輸入約瑟夫環(huán)中的人數(shù):");
    scanf("%d",&n);
    Createlist(L,n);
    printf("創(chuàng)建的約瑟夫環(huán)為:\n");
    Listtrave(L,n);
    printf("依次出局的結(jié)果為:\n");
    Solution(L,n);
    return 0;
}

head.h文件:

#include "1.h"
#include <stdio.h>
#include <stdlib.h>



typedef int Elemtype;
typedef struct LNode{
    Elemtype data;
    struct LNode *next;
}LNode,*Linklist;

void Createlist(Linklist &L,int n)
{
    Linklist p,tail;
    L = (Linklist)malloc(sizeof(LNode));
    L->next = L;//先使其循環(huán) 
    p = L;
    p->data = 1;//創(chuàng)建首節(jié)點之后就先給首節(jié)點賦值,使得后面節(jié)點賦值的操作能夠循環(huán) 
    tail = L;
    for(int i = 2;i <= n;i++)
    {
        p = (Linklist)malloc(sizeof(LNode));
        p->data = i;
        p->next = L;
        tail->next = p;
        tail = p;
    }
    printf("已生成一個長度為%d的約瑟夫環(huán)!\n",n); 
}
void Listtrave(Linklist L,int n)//遍歷函數(shù) 
{
    Linklist p;
    p = L;
    for(int i = 1;i <= n;i++)
    {
        printf("%3d",p->data);
        p = p->next;
    }
    printf("\n");
}
int Solution(Linklist L,int n)
{
    Linklist p,s;
    p = L,s = L;
    int count = 1;
    while(L)
    {
        if(count != 3)
        {
            count++;p = p->next;//進行不等于3時的移位 
        }
        else
        {
            Linklist q;
            q = p;//用q保存p所指的位置,方便進行節(jié)點的刪除 
            if(s->next->data == s->data)//當(dāng)只有一個元素的時候 
            {
                printf("%3d\n",s->data);
                free(s);
                return OK;
            }
            else//當(dāng)有兩個及兩個以上的元素的時候 
            {
                count = 1;//先將count重置為1
                printf("%3d",p->data);//再打印出出局的值 
                while(s->next != p) 
                {
                    s = s->next;//將s移位到p的前驅(qū)節(jié)點處 
                }
                p = p->next;//使p指向自己的下一個節(jié)點 
                s->next = p;//進行刪除 
                free(q);
            }
        }
    }
}

1.h文件:

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一起來看看C語言的預(yù)處理注意點

    一起來看看C語言的預(yù)處理注意點

    這篇文章主要為大家詳細(xì)介紹了C語言的預(yù)處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++中的三種繼承public,protected,private詳細(xì)解析

    C++中的三種繼承public,protected,private詳細(xì)解析

    我們已經(jīng)知道,在基類以private方式被繼承時,其public和protected成員在子類中變?yōu)閜rivate成員。然而某些情況下,需要在子類中將一個或多個繼承的成員恢復(fù)其在基類中的訪問權(quán)限
    2013-09-09
  • C++實現(xiàn)簡易通訊錄管理系統(tǒng)

    C++實現(xiàn)簡易通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)簡易通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++11正則表達(dá)式詳解(regex_match、regex_search和regex_replace)

    C++11正則表達(dá)式詳解(regex_match、regex_search和regex_replace)

    正則表達(dá)式(regular expression)是計算機科學(xué)中的一個概念,又稱規(guī)則表達(dá)式,下面這篇文章主要介紹了C++11正則表達(dá)式(regex_match、regex_search和regex_replace)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • C++中std::thread線程用法

    C++中std::thread線程用法

    本文主要介紹了C++中std::thread線程用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C語言學(xué)習(xí)之條件和?if...else語句詳解

    C語言學(xué)習(xí)之條件和?if...else語句詳解

    這篇文章主要給大家介紹了C語言中的條件和?if...else語句,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • C語言實現(xiàn)單詞助手功能

    C語言實現(xiàn)單詞助手功能

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)單詞小助手,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 詳解C語言編程中預(yù)處理器的用法

    詳解C語言編程中預(yù)處理器的用法

    這篇文章主要介紹了C語言編程中預(yù)處理器的用法,包括介紹了C和C++混合編程的情況,需要的朋友可以參考下
    2016-02-02
  • C++的try塊與異常處理及調(diào)試技術(shù)實例解析

    C++的try塊與異常處理及調(diào)試技術(shù)實例解析

    這篇文章主要介紹了C++的try塊與異常處理及調(diào)試技術(shù)實例解析,有助于讀者加深對try塊調(diào)試技術(shù)的認(rèn)識,需要的朋友可以參考下
    2014-07-07
  • C++14新特性的所有知識點全在這

    C++14新特性的所有知識點全在這

    這篇文章主要介紹了C++14新特性的所有知識點全在這,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

盖州市| 廊坊市| 合川市| 景泰县| 兴安盟| 恭城| 镇原县| 泰兴市| 肇东市| 栾城县| 南宫市| 中西区| 桂东县| 水富县| 江西省| 新竹县| 福泉市| 永泰县| 丰原市| 沁阳市| 大港区| 恩施市| 大冶市| 讷河市| 城口县| 宽城| 山阳县| 竹山县| 扎囊县| 文山县| 漠河县| 虞城县| 无锡市| 色达县| 无极县| 泗水县| 石楼县| 上栗县| 南澳县| 芒康县| 峨边|