• C语言典范编程


    题目:创立一个链 表.
    1,程序解析:           
    2,程序源代码:
    creat a list
    #include “stdlib.h”
    #include “stdio.h”
    struct list
    { int data;
    struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    void main()
    { link ptr,head;
    int num,i;
    ptr=(link)malloc(sizeof(node));
    ptr=head;
    printf(“please input 5 numbers==>\n”);
    for(i=0;i<=4;i++)
    {
     scanf(“%d”,&num);
     ptr->data=num;
     ptr->next=(link)malloc(sizeof(node));
     if(i==4) ptr->next=NULL;
     else ptr=ptr->next;
    }
    ptr=head;
    while(ptr!=NULL)
    { printf(“The value is ==>%d\n”,ptr->data);
     ptr=ptr->next;
    }
    }

    【程序73】
    题目:反向输出一个链 表.   
    1,程序解析:
    2,程序源代码:
    reverse output a list
    #include “stdlib.h”
    #include “stdio.h”
    struct list
    { int data;
     struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    void main()
    { link ptr,head,tail; 
     int num,i;
     tail=(link)malloc(sizeof(node));
     tail->next=NULL;
     ptr=tail;
     printf(“\nplease input 5 data==>\n”);
     for(i=0;i<=4;i++)
     {
      scanf(“%d”,&num);
      ptr->data=num;
      head=(link)malloc(sizeof(node));
      head->next=ptr;
      ptr=head;
     }
    ptr=ptr->next;
    while(ptr!=NULL)
    { printf(“The value is ==>%d\n”,ptr->data);
     ptr=ptr->next;
    }}

    【程序74】
    题目:毗连两个链 表.
    1,程序解析:
    2,程序源代码:
    #include “stdlib.h”
    #include “stdio.h”
    struct list
    { int data;
    struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    link delete_node(link pointer,link tmp)
    {if (tmpNULL) delete first node
     return pointer->next;
    else
    { if(tmp->next->next
    NULL)delete last node
      tmp->next=NULL;
     else delete the other node
      tmp->next=tmp->next->next;
     return pointer;
    }
    }
    void selection_sort(link pointer,int num)
    { link tmp,btmp;
     int i,min;
     for(i=0;i  {
     tmp=pointer;
     min=tmp->data;
     btmp=NULL;
     while(tmp->next)
     { if(min>tmp->next->data)
     {min=tmp->next->data;
      btmp=tmp;
     }
     tmp=tmp->next;
     }
    printf(“\40:%d\n”,min);
    pointer=delete_node(pointer,btmp);
    }
    }
    link create_list(int array[],int num)
    { link tmp1,tmp2,pointer;
    int i;
    pointer=(link)malloc(sizeof(node));
    pointer->data=array[0];
    tmp1=pointer;
    for(i=1;i { tmp2=(link)malloc(sizeof(node));
     tmp2->next=NULL;
     tmp2->data=array[i];
     tmp1->next=tmp2;
     tmp1=tmp1->next;
    }
    return pointer;
    }
    link concatenate(link pointer1,link pointer2)
    { link tmp;
    tmp=pointer1;
    while(tmp->next)
     tmp=tmp->next;
    tmp->next=pointer2;
    return pointer1;
    }
    void main(void)
    { int arr1[]={3,12,8,9,11};
     link ptr;
     ptr=create_list(arr1,5);
     selection_sort(ptr,5);
    }

  • 相关阅读:
    cuda系列详细教程-花絮
    Springboot辅助功能(内嵌tomcat服务器)
    英特尔神经网络计算棒
    韩语图片文字如何转为纯文本?
    求简单微分方程
    【Linux-Windows】千兆网口以及千兆网线
    用微服务平台框架,实现高效的流程化办公!
    模板字符串
    QT读写USB接口数据
    大屏UI设计-看这一篇就够了
  • 原文地址:https://blog.csdn.net/mestyles/article/details/128142931