📄 链表插入.cpp
字号:
#include<iostream>
using namespace std;
#include<stdlib.h>
typedef int DataType; //以int为例
struct Lnode
{
DataType data;
Lnode *next;
};
Lnode *insert(Lnode *p,int n)//链表插入
{
Lnode *p0,*p1,*p2;
p0=new Lnode;
p0->data=n;
p1=p;
while((p0->data>p1->data)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->data<=p1->data)
{
if(p==p1)
p=p0;
else
p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
return p;
}
Lnode *creat()//创建链表,并对其进行排序
{
Lnode *p,*h;
int a[100];
int i,j,k,n;
cout<<"输入元素的个数: ";
cin>>n;
cout<<"输入"<<n<<"个元素: ";
for(i=0;i<n;i++)
cin>>a[i];
for(j=0;j<n-1;j++)
{
for(i=0;i<n-1-j;i++)
{
if(a[i]>a[i+1])
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;
}
}
}//冒泡法将数组排序
h=new Lnode;
p=h;
for(i=0;i<n-1;i++)
{
p->next=new Lnode;
p->data=a[i];
p=p->next;
}//将数组赋值给链表
p->data=a[n-1];
p->next=NULL;
return h;
}
void main()
{
Lnode *p,*h,*q;
int n;
h=creat();
cout<<"输入要插入的元素:";
cin>>n;
cout<<"插入并排序的结果为:";
q=insert(h,n);
p=q;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}//输出结果
cout<<endl;
system("pause");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -