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

📄 bld_1_10.c

📁 不错书对C++/C程序员很有用的大家不要错过.
💻 C
字号:
#include <stdio.h>
#include <alloc.h>

void main(void)
 {
   int i;

   struct ListEntry 
   {
     int number;
     struct ListEntry *next;
     struct ListEntry *previous;
   } start, *node, *new;

   start.next = NULL;  // Empty list
   start.previous = NULL;
   node = &start;      // Point to the start of the list

   for (i = 1; i < 10; i += 2)
     {
       node->next = (struct ListEntry *) malloc(sizeof(struct ListEntry));
       node->next->previous = node;
       node = node->next;
       node->number = i;
       node->next = NULL;
     }


   for (i = 2; i <= 10; i += 2)
     {
       int found = 0;
       
       new = (struct ListEntry *) malloc(sizeof(struct ListEntry));
       new->number = i;
       node = start.next;

       do 
       {
         if (node->number > new->number)
           {
             new->next = node;
             new->previous = node->previous;
             node->previous->next = new;
             node->previous = new;
             found = 1;
           }
         else
           node = node->next;
       } while ((node->next) && (! found));

       if (! found)
        if (node->number > new->number)
          {
             new->next = node;
             new->previous = node->previous;
             node->previous->next = new;
             node->previous = new;
          }
        else
          {
             new->next = NULL;
             new->previous = node;
             node->next = new;
          }
     }

    // Display the list
    node = start.next;
    do 
    {
        printf("%d ", node->number);
        node = node->next;
    } while (node);  
 }


⌨️ 快捷键说明

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