• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C++ 链表冒泡法排序算法

OC/C/C++ 水墨上仙 1856次浏览

C++ 链表冒泡法排序算法

//linked list bubble sort
//programming by : Erfan Nasoori
//Mail : ketn68@yahoo.com
//Date of send : 2009/1/13
#include <iostream>
#include <conio>
class node
{
    friend class linklist;
    int number;
    node *next;
};
class linklist
{
    private:
        node *first;
        node *last;
    public:
    	linklist(){ first = NULL; }
        ~linklist(){};
        void addnode();
        void BubbleSort();
        void displaynode();
    };
void linklist :: addnode()
{
  node *newno;
  do
  {
     newno = new node;
     newno->next=NULL;
     cout<<"Number : ";
     cin>>newno->number;
     if(first==NULL)
         first=last=newno;
     else
     {
         last->next=newno;
         last=newno;
     }
  }while(newno->number != 0);
}
void linklist :: displaynode()
{
  cout<<"---------------------\nSorted numbers :\n";
  node *curno=first;
  while(curno)
  {
     cout<<curno->number<<' ';
     curno=curno->next;
  }
}
void linklist ::BubbleSort()
{
  int i,j,m,n=0,hold;
  node *q, *p, *t;
  for(node*q = first ; q ; q=q->next)   //balad shodid;
    ++n;
  for(i=1 , t = first  ; i<=n-1 ;  t = t->next , ++i)
    for( j=0 , p = first  ; j<n-i ;  p = p->next , ++j)
       if(p->number > (p->next)->number)
       {
	 hold = p->number;
         p->number = (p->next)->number;
         (p->next)->number = hold;
       }
}
void main()
{
    linklist sl;
    sl.addnode();
    sl.BubbleSort();
    sl.displaynode();
    getch();
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C++ 链表冒泡法排序算法
喜欢 (0)
加载中……