zoukankan      html  css  js  c++  java
  • 单链表排序

      单链表排序算法,代码如下:

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

    typedef struct Node
    {
      int data;
      Node *next;
    }LinkList;

    void CreateLinkList(LinkList *pHeader, int nLen, int *arr)
    {
      pHeader->next = NULL;
      LinkList *p;
      p = pHeader;
      for (int i = 0; i < nLen; i++)
      {
        LinkList *node = (LinkList*)malloc(sizeof(LinkList));
        node->data = arr[i];
        p->next = node;
        p = node;
      }
      p->next = NULL;
    }

    void SortLinkList(LinkList *pHead)
    {
      LinkList *p = pHead;
      if (p == NULL)
      {
        return;
      }
      LinkList *q = p->next;
      if (q == NULL)
      {
        return;
      }
      LinkList *r = q->next;
      q->next = NULL;
      q = r;
      while(q != NULL)
      {
        r = q->next;
        p = pHead;
        while(p->next != NULL && p->next->data < q->data)
        {
          p = p->next;
        }
        q->next = p->next;
        p->next = q;
        q = r;
      }
    }

    void Display(LinkList *pHead)
    {
      LinkList *p = pHead->next;
      while(p != NULL)
      {
        printf("%d\n", p->data);
        p = p->next;
      }
    }

    int _tmain(int argc, _TCHAR* argv[])
    {
      int a[9] = {3,7,6,5,4,8,1,2};
      LinkList *pHead = (LinkList *)malloc(sizeof(LinkList));
      CreateLinkList(pHead, 8, a);
      SortLinkList(pHead);
      Display(pHead);
      return 0;
    }

  • 相关阅读:
    Java守护线程Daemon
    在for循环中创建双向链表
    Java泛型-官方教程
    大自然搬运工
    转 curl命令
    HashMap扩容问题及了解散列均分
    mysql 分组查询并取出各个分组中时间最新的数据
    CNN 模型复杂度分析
    Attention机制
    深度学习之目标检测
  • 原文地址:https://www.cnblogs.com/lzmfywz/p/3000515.html
Copyright © 2011-2022 走看看