内容要点
按数据元素升序建立单链表,在建立的过程中,要求每插入一个数据元素后,链表中的数据元素按升序排列,输入相同数据元素只要求插入一次。
源码
//上机一
#include<iostream>//上机实验1:升序排列,无重复
using namespace std;
class node
{
int data;
node *next;
friend class list;
};
class list
{
public:
node *head;
list(){head=NULL;}
void creat(int x)
{
int m=1;
node *s=new node;
s->data=x;
s->next=NULL;
node *p,*q;
p=NULL;
q=head;
while(q!=NULL&&x>=q->data)//head不为空,同时x大于等于q->data
{
if(x==q->data)//q=head时x==head->data,(return)不进行后续操作;
m=0;
if(m!=0)
p=q;
q=q->next;
}
if(m!=0)
{
if(p==NULL)//head==NULL,head=s
{
head=s;
}
else//head!=NULL时,根据下面两句 s成功连入
{
p->next=s;
}
s->next=q;
}
}
void show()
{
node *p;p=head;
while(p)
{
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}
};
int main()
{
list l;int x;
cout<<"请输入数字,输0结束"<<endl;
while(cin>>x&&x)
{
l.creat(x);
}
cout<<endl<<"输出:"<<endl;
l.show();
}
自述
这是小菜鸟第一次写博客,要加油呀!把代码放上来留念hhhh~
你的点赞和关注都是对我的极大鼓励!