#include <iostream>using namespace std;class NODE{public:int data;NODE *next;};void fun(NODE *list,int x){NODE *u,*v,*p;u=list;v=u->next;while(v!=NULL&&x<v->data){u=v;v=v->next;}if(v==NULL||x>v->data){p=new NODE;p->data=x;p->next=v;u->next=p;}}void main(){int x;NODE *head,*p;head=new NODE;head->next=NULL;cout<<"Enter integers,end with 0"<<endl;while(1){cin>>x;if(x==0)break;fun(head,x);}for(p=head->next;p!=NULL;p=p->next)do{p=head->next;delete head;head=p;}while(p);}
1 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
void fun(NODE *list,int x) // 一个函数 ,第一个参数类型为NODE对象指针,第二个参数类型为int
{
NODE *u,*v,*p; // 声明三个NODE对象的指针 u, v, p
u=list; // u指向list指向的地址
v=u->next; // v指向了u的下一个节点位置
while(v!=NULL&&x<v->data) // 循环,如果v指向的位置不为空并且x小于v指向对象的成员data
{
u=v; // u指向v,即u指向链表的下一个对象
v=v->next; // v指向了链表的下一个对象
}
if(v==NULL||x>v->data) // 判断,如果v指向的位置为空,或者x大于v指向对象的成员data,只要满足一个条件就执行以下括号里面的语句
{
p=new NODE; // 动态构造出一个NODE 对象(匿名对象)并且将对象的地址赋值给p
p->data=x; // 给匿名对象的成员赋值,data = x ;
p->next=v; // 匿名对象的next指向了v指向的对象
u->next=p; // 把匿名对象接入链表中适当的位置
}
}// 函数的作用:将变量x插入链表中,保证x前面的元素一定比x大
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消