• 初学数据结构四


     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 struct _Node
     4 {
     5 int data;
     6 struct _Node *next;
     7 };
     8 typedef struct _Node node_t;
     9 typedef struct _Linklist
    10 {
    11 node_t *phead;
    12 node_t *ptail;
    13 int len;
    14 }Linklist;
    15 static node_t *GetNode(int i)
    16 {
    17 node_t *pNode;
    18 pNode=(node_t*)malloc(sizeof(node_t));
    19 if(!pNode)
    20 {
    21 prinf("Error, the memory is not enough!
    ");
    22 exit(-1);
    23 }
    24 pNode->data=i;
    25 pNode->next=NULL;
    26 return pNode;
    27 }
    28 void init_list(Linklist *plist)
    29 {
    30 node_t *p;
    31 p=GetNode(1);
    32 plist->phead=p;
    33 plist->ptail=p;
    34 p->next=plist->phead;
    35 plist->len=1;
    36 }
    37 static void Create_List(Linklist*plist,int n)
    38 {
    39 int i=0;
    40 node_t *pNew;
    41 for(i=2;i<=n;i++)
    42 {
    43 pNew=GetNode(i);
    44 plist->tail->next=pNew;
    45 plist->tail=pNew;
    46 pNew->next=plist->phead;
    47 plist->len++;
    48 }
    49 printf("Completethe e-way circulation chain table the");
    50 }
    51 void Print_List(Linklist* plist)
    52 {
    53 node_t *pCur=plist->head;
    54 do
    55 {
    56 printf("THe %d person.
    ",plist->data);
    57 pCur=pCur->next;
    58 }while(pCur!=plist->phead);
    59 printf("The length of the list:%d
    ",plist->len);
    60 }
    61 void joseph(Linklist *plist,int m)
    62 {
    63 node_t *pPre=plist->ptail;
    64 node_t *pCur=plist->phead;
    65 int i;
    66 while(plist->len!=1)
    67 {
    68 i=0;
    69 while(plist->len!=1)
    70 {
    71 i=0;
    72 while(i<m-1)
    73 {
    74 pPre=pPre->next;
    75 i++;
    76 }
    77 pCur=pPre->next;
    78 pPre->next=pCur->next;
    79 free(pCur);
    80 plist->len--;
    81 }
    82 printf("The last one is:",pPre->data);
    83 }
    84 int main()
    85 {
    86 int n=0;
    87 printf("Please input the length of the Circle list:");
    88 scanf_s(%d,&m);
    89 Linklist pList;
    90 init_list(&pList);
    91 Create_List(&pList,n);
    92 Print_List(&pList);
    93 joseph(&pList,m);
    94 system("pause");
    95 return 0;
    96 }
  • 相关阅读:
    Mysql 批量删除表中某一区间的所有数据
    Linux 安装中文输入法(搜狗输入法)
    国内外重点新闻网站
    Ubuntu配置更换国内源的方法
    Beautiful Soup:4 kinds of objects
    mysql中concat函数,mysql在字段前/后增加字符串
    solr 数据库关联,表数据添加不进solr,一直indexing
    小程序+tgit
    impdp导入报错39002
    eclipse+springboot+tomcat自带的部署
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3351341.html
Copyright © 2020-2023  润新知