内存:128  时间:1

题目描述

链表是一种最常用的线性结构数据的表示方式。下面的程序中,给出了结点类和链表类的声明。请将程序补充完整,使输入一个负数之后,前面输入的非负数可以呈升序输出。请在begin到end中间写上需要的代码,并提交这部分程序。
#include<iostream>
using namespace std;
class Node
{
private:
    int data;
    Node *next;
public:
    Node(int n)
    {
        data=n;
        next=NULL;
    }
    void setNext(Node *n);
    int getData();
    Node *getNext();
};
class List
{
private:
    Node *head;
public:
    List()
    {
        head=NULL;
    }
    void insertlist(Node *s);
    void outputlist();
    ~List();
};
//**********************begin***************************

//*****************end********************
int main()
{
    List A;
    int n;
    cin>>n;
    while(n>0)
    {
        A.insertlist(new Node(n));
        cin>>n;
    }
    A.outputlist();
    return 0;
}

输入

若干非负数,以一个负数结束

输出

链表中所有结点元素的值,按升序排列。

样例输入

6 2 4 1 8 9 11 67 12 -1

样例输出

1 2 4 6 8 9 11 12 67

提示

代码如下

#include<stdio.h>
int main()
{
    int i=0,n=0;
    int a[50],t,j;
    while(scanf("%d",&a[i])!=EOF)
    {
        if(a[i]<0)break;
        i++;
    }
    n=i;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-1-i;j++)
        if(a[j]>a[j+1])
        {
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }
    for(i=0;i<n;i++)
    {
         printf("%d",a[i]);
         if(i==n-1)break;
         printf(" ");
    }


    return 0;
}

代码来源于互联网,仅供参考!