毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++用链表存放数据并排序 第2页

更新时间:2011-5-14:  来源:毕业论文
/*按下述方法设计一个排序程序:使用由结构形成的链表来存放数据;总保障,在把第i个数据插入到链表以前,链表中当前已有的i-1个数据已经是有序的(i=1,2,…,即是说,每次总是在原有有序链表的适当位置插入新数据,而保障插入后的链表仍有序。注意i=1时,链表为“空”显然满足条件)。
    提示:可定义如下的数据结构以及指针变量first与last,而后从键盘输入n个数据,依次“插入”到以first指向其首、以last指向其末的有序链表之中,最终实现n个int型数据的从小到大排序,并输出排序结果。
    struct item {      //使用item结构来形成链表项
  int dat;      //放欲排序的数据
  item* next;      //指向其后项,“串联”成为链表
};
item* first=NULL, *last=NULL;   // first指向链表首项,last指向链表末项
//赋予初值NULL意味着起始时链表为“空”。
*/
#include<iostream>
using namespace std;

struct item
{
 int dat;
 item *next;
};
void input(int );
void sortadd(int);
void output();


item * first=NULL;
item * last=NULL;
int main()
{
 cout<<"输入将要输入数的个数n:";
 int n;
 cin>>n;
 input(n);
 output();
 
 return 0;
}

void input(int n)
{
 cout<<"依次输入n个数: ";
 int data;
 for(int i=0;i<n;i++)
 {
  cin>>data;
  sortadd(data);
 }
}

void sortadd(int data)
{
 if(first==NULL)
 {
  first=new item();
  first->dat=data;
  first->next=NULL;
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com/   item * q=p;
  while(p!=NULL&&p->dat<data)
  {
   p=p->next;
   q=p;
  }
  item *newi=new item();
  newi->dat=data;
  newi->next=NULL;
  if(p==first)
  {
   newi->next=first;
   first=newi;
   return;
  }

  if(p!=NULL)
  {
     newi->next=q->next;
     q->next=newi;
  }
  else
  {
   last->next=newi;
   last=newi;
  }
 }
}

void output()
{
 cout<<"顺序输出:";
 item *p=first;
 
 while(p!=NULL)
 {
  cout<<p->dat<<" ";
  p=p->next;
 }
 cout<<endl;

上一页  [1] [2] 

C++用链表存放数据并排序 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。