| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 757 人关注过本帖
标题:关于链表的插入法排序
只看楼主 加入收藏
一介白书生
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于链表的插入法排序


#include <stdio.h>
 #include <stdlib.h>
 typedef struct _list
 {
     int elem;
     struct _list *pPre;
     struct _list *pNext;
 }List;
 List *CreatList()//创建一个双线链表
 {
     List *pHead = (List*)malloc(sizeof(List));
     pHead->pNext = pHead->pPre = pHead;
     return pHead;
 }
 void InsertList(List *pHead,int elem)//头插法插入数据函数
 {
      List *pCur = pHead,*pTemp = pCur->pNext;
     List *pNew = (List*)malloc(sizeof(List));
     pNew->elem = elem;//数据初始化
//以下是插入过程
     pNew->pNext = pCur->pNext;
     pCur->pNext = pNew;
 
    pNew->pPre = pTemp->pPre;
     pTemp->pPre = pNew;
 }
 void Print(List *pHead)//打印链表函数
 {
     List *pCurrent = pHead->pNext;
     while(pCurrent!=pHead)
     {
         printf("%d,",pCurrent->elem);
         pCurrent = pCurrent->pNext;
     }
 }
 void main()
 {
     List *pHead = CreatList();
     List *pCur = pHead->pNext,*pPrev,*pT=pHead;
     int data[] = {1,32,4,3,24,2,5},count = 0,i = 0;
     count = sizeof(data)/sizeof(data[0]);
     for(i=0;i<count;i++)
     {
         InsertList(pHead,data[i]);
     }
   //下面是插入法排序的算法,
     while(pCur->pNext!=pHead)
     {
         pPrev = pCur;
         for(pT=pPrev->pPre;pT!=pHead;pT=pT->pPre)
         {
             if(pT->elem <= pPrev->elem)
             {
                break;
             }
         }
         pPrev->pNext = pT->pNext;
         pT->pNext = pPrev;
         pPrev->pPre = pT->pNext->pPre;
         pT->pNext->pPre = pPrev;
 
    }
     Print(pHead);
 }我觉得插入法的算法是对的,但就是不能运行,为什么??求大神解决,另外那个单向链表的插入法的算法该如何解决??
 



搜索更多相关主题的帖子: void 函数 include return 插入法 
2013-05-01 21:15
々NARUTO
Rank: 2
等 级:论坛游民
帖 子:80
专家分:85
注 册:2011-6-19
收藏
得分:20 
你看看 我以前 写过的 一个学生管理系统的帖子 里面有排序 和 插入 删除算法
2013-05-04 08:18
一介白书生
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-1
收藏
得分:0 
哦,我这个是想用插入法排序的这种算法来实现排序
2013-05-04 18:08
快速回复:关于链表的插入法排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034848 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved