单链表的插入删除
来源:互联网 发布:淘宝.香云纱 编辑:程序博客网 时间:2024/06/04 18:48
#include<iostream>
using namespace std;
struct Lnode
{
int data;
Lnode *next;
};
void Creat_Link(Lnode *&head) //*&head指针的引用,Lnode* head;传递的是指针,但是对于指针的原值却发生了COPY,这样你虽然可以对指针指向的内存进行修改但是不能对指针进行修改。因此要传递指针的引用。
{
Lnode *p,*q;
int n,i;
p=new Lnode;
head=p;
cout<<"输入链的长度"<<endl;
cin>>n;
cout<<"输入数据"<<endl;
cin>>p->data;
q=p;
for(i=1;i<=n-1;i++)
{
p=new Lnode;
cin>>p->data;
q->next=p;
q=p;
}
q->next=NULL;
}
void insert_Link(Lnode *&head)
{
int i,j;
cout<<"输入插入位置:";
cin>>i;
Lnode *q,*iq;
q=head;
for(j=1;j<i;j++)
{
iq=q;
q=q->next;
}
Lnode *p;
p=new Lnode;
cout<<"输入插入数据"<<endl;
cin>>p->data;
p->next=iq->next;
iq->next=p;
cout<<endl;
}
void delete_Link(Lnode *&head)
{
int i,j;
cout<<"输入删除位置"<<endl;
cin>>i;
Lnode *q,*iq;
q=head;
for(j=1;j<i;j++)
{
iq=q;
q=q->next;
}
Lnode *p;
p=iq->next;
iq->next=p->next;
delete(p);
cout<<endl;
}
void output_Link(Lnode *&head)
{
if(head==NULL)
{
cout<<"空链表"<<endl;
return ;
}
Lnode *q;
q=head;
while(q!=NULL)
{
cout<<q->data<<" ";
q=q->next;
}
cout<<endl;
}
int main()
{
Lnode *head;
head=NULL;
Creat_Link(head);
insert_Link(head);
output_Link(head);
delete_Link(head);
output_Link(head);
return 0;
}
using namespace std;
struct Lnode
{
int data;
Lnode *next;
};
void Creat_Link(Lnode *&head) //*&head指针的引用,Lnode* head;传递的是指针,但是对于指针的原值却发生了COPY,这样你虽然可以对指针指向的内存进行修改但是不能对指针进行修改。因此要传递指针的引用。
{
Lnode *p,*q;
int n,i;
p=new Lnode;
head=p;
cout<<"输入链的长度"<<endl;
cin>>n;
cout<<"输入数据"<<endl;
cin>>p->data;
q=p;
for(i=1;i<=n-1;i++)
{
p=new Lnode;
cin>>p->data;
q->next=p;
q=p;
}
q->next=NULL;
}
void insert_Link(Lnode *&head)
{
int i,j;
cout<<"输入插入位置:";
cin>>i;
Lnode *q,*iq;
q=head;
for(j=1;j<i;j++)
{
iq=q;
q=q->next;
}
Lnode *p;
p=new Lnode;
cout<<"输入插入数据"<<endl;
cin>>p->data;
p->next=iq->next;
iq->next=p;
cout<<endl;
}
void delete_Link(Lnode *&head)
{
int i,j;
cout<<"输入删除位置"<<endl;
cin>>i;
Lnode *q,*iq;
q=head;
for(j=1;j<i;j++)
{
iq=q;
q=q->next;
}
Lnode *p;
p=iq->next;
iq->next=p->next;
delete(p);
cout<<endl;
}
void output_Link(Lnode *&head)
{
if(head==NULL)
{
cout<<"空链表"<<endl;
return ;
}
Lnode *q;
q=head;
while(q!=NULL)
{
cout<<q->data<<" ";
q=q->next;
}
cout<<endl;
}
int main()
{
Lnode *head;
head=NULL;
Creat_Link(head);
insert_Link(head);
output_Link(head);
delete_Link(head);
output_Link(head);
return 0;
}
- 单链表的插入删除
- 单链表的插入删除
- 单链表的插入删除
- 单链表的插入、删除
- 单链表的插入和删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的建立、插入、删除
- 单链表的插入和删除
- 单链表的创建,删除,插入
- 单链表的查找、删除、插入!
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入和删除
- 单链表的创建、插入、删除
- 单链表的插入与删除
- C#中使用DataGridView控件显示数组中的内容
- static代码块
- Ext4+Servlet+HTML5实现实时获取文件上传进度、本地预览、文件拖拽上传的相册实例
- Source Filer 的手动连接 注意事项
- 一段java枚举代码
- 单链表的插入删除
- 要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列
- 图像特效之三角几何应用
- Apache CXF实战
- 猴子分桃
- Java读写文件中避免中文乱码
- 解决jscollpan不能出现水平滑动条的问题
- Ubuntu_设置Ubuntu环境变量 PATH 的方法 及配置备份
- 关于SAX,DOM,JAXP,JDOM,DOM4J(转)