zoukankan      html  css  js  c++  java
  • 链表值排序之冒泡

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 /*
     4 链表值排序之冒泡:核心思想:1.每次都从头开始比较
     5                             2.推动链表往下走的不在是下标
     6 */
     7 typedef struct node
     8 {
     9     int data;
    10     struct node * next;
    11 }NODE;
    12 NODE * createList()
    13 {
    14     NODE *head = (NODE *)malloc(sizeof(NODE));
    15     head->next = NULL;
    16 
    17     return head;
    18 }
    19 void insertNode(NODE *head,int insertData)
    20 {
    21     NODE * sur = (NODE *)malloc(sizeof(NODE));
    22     sur->data = insertData;
    23 
    24     sur->next = head->next;
    25     head->next = sur;
    26     return ;
    27 }
    28 void traverNode(NODE * head)
    29 {
    30     head = head->next;
    31     while(head)
    32     {
    33         printf("%d
    ",head->data);
    34         head = head->next;
    35     }
    36     return ;
    37 }
    38 int lenList(NODE *head)
    39 {
    40     int len = 0;
    41     head = head->next;
    42     while(head)
    43     {
    44         len++;
    45         head = head->next;
    46     }
    47 
    48     return len;
    49 }
    50 void sortNode(NODE *head)
    51 {
    52     int len = lenList(head);
    53     NODE * sur = NULL;
    54     int temp;
    55     for(int i = 0;i<len-1;i++)
    56     {
    57         sur = head->next;
    58         for(int j = 0;j<len-1-i;j++)
    59         {
    60             if(sur->data > sur->next->data)
    61             {
    62                 temp = sur->data;
    63                 sur->data = sur->next->data;
    64                 sur->next->data = temp;
    65             }
    66             sur = sur->next;//推动链表向前走
    67         }
    68     }
    69     return ;
    70 }
    71 int main(void)
    72 {
    73     NODE * head = createList();
    74     for(int i = 0;i<30;i++)
    75     {
    76         insertNode(head,rand()%100);
    77     }
    78     printf("排序前
    ");
    79     traverNode(head);
    80     printf("排序后
    ");
    81     sortNode(head);
    82     traverNode(head);
    83 
    84     return 0;
    85 }
  • 相关阅读:
    Git 简介
    Web开发——jQuery基础
    VueJS教程4
    VueJS教程3
    VueJS教程2
    linux命令,系统安全相关命令--改变文件属性与权限(chgrp,chwon,chmod)
    linux命令,系统安全相关命令--su
    linux命令,系统安全相关命令--passwd
    git常用命令整理
    vi常用按键
  • 原文地址:https://www.cnblogs.com/wangchaomahan/p/9704268.html
Copyright © 2011-2022 走看看