⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3单链表.cpp

📁 数据结构的C++表述
💻 CPP
字号:
#include <iostream.h>
struct slnode
{
	int data;
	slnode *next;
};
slnode* Create_SL()
{
	slnode *p,*s,*h;
	int x;
	h=new slnode;
	h->next=NULL;
	cout<<"输入数据,以-1结束:"<<endl;
	cin>>x;
	while(x!=-1)
	{
		s=new slnode;
		s->data=x;
		if(h->next==NULL)
			h->next=s;
		else
			p->next=s;
		p=s;
		cin>>x;
	}
	p->next=NULL;
	return h;
}
int Insert_LinkList(slnode *h,int i,int x)
{
	slnode *p,*s;
	int j=0;
	p=h;
	while(p->next!=NULL&&j<i-1)
	{
		p=p->next;
		j++;
	}
	if(j!=i-1)
	{
		cout<<"i is invalid!"<<endl;
		return 0;
	}
	else
	{
		s=new slnode;
		s->data=x;
		s->next=p->next;
		p->next=s;
		return 1;
	}
}
void Del_LinkList(slnode *h,int x)
{
	slnode *p,*q;
	p=h;
	q=h->next;
	while(q!=NULL&&q->data!=x)
	{
		p=q;
		q=q->next;
	}
	if(!q)
		cout<<"结点中的值没有x!"<<endl;
	else
	{
		p->next=q->next;
		delete q;
	}
}
void Print(slnode *h)
{
	slnode *p;
	p=h->next;
	if(p==NULL)
		cout<<"链表为空!"<<endl;
	else
		cout<<"链表中的数据为:"<<endl;
	while(p!=NULL)
	{
		cout<<p->data<<" ";
		p=p->next;
	}
	cout<<endl;
}
void main()
{
	slnode *h;
	int i,x;
	h=Create_SL();
	Print(h);
	cout<<"输入插入的数据及其位置:"<<endl;
	cin>>x>>i;
	Insert_LinkList(h,i,x);
	Print(h);
	cout<<"输入删除的数据:"<<endl;
	cin>>x;
	Del_LinkList(h,x);
	Print(h);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -