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;
    }

  • 相关阅读:
    源代码的下载与编译
    Git使用入门
    搭建Android开发环境
    Android系统移植与驱动开发
    Android探索与驱动开发学与思(10)
    Android探索与驱动开发学与思(9)
    Android探索与驱动开发学与思(8)
    第七章
    第六章
    第五章
  • 原文地址:https://www.cnblogs.com/lzmfywz/p/3000515.html
Copyright © 2011-2022 走看看