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

📄 单链表的操作.txt

📁 单连表
💻 TXT
字号:
//2. 单链表
#include<iostream>
#define elemtype int
using namespace std;
class link
{   public:
    elemtype data;
    link *next;};
link *hcreat()
{   link *s,*p;
    elemtype i;
    p=new link;
    p->next=NULL;
cout<<"输入多个结点数值,以空格为间隔,以0为终止符"<<endl;
    cin>>i;
    while(i)
    {   s=new link;
        s->data=i;
        s->next=p->next;
        p->next=s;
        cin>>i;}
        return p;}
void print(link *head)
{   link *p;
    p=head->next;
    while(p->next!=NULL)
    {   cout<<p->data<<"->";
        p=p->next;}
    cout<<p->data<<endl;}
link *Locate(link *head,elemtype x)
{   link *p;
    p=head->next;
    while((p!=NULL)&&(p->data!=x))
    p=p->next;
    return p;}
void deletel(link *head,elemtype x)
{   link *p,*q;
    q=head;
    p=head->next;
    while((p!=NULL)&&(p->data!=x))
    {   q=p;
        p=p->next;}
    if(p==NULL)
    cout<<"要删除的结点不存在!";
    else{   q->next=p->next;
        delete(p);}}
void insert(link *head,elemtype x,elemtype y)
{   link *p,*s;
    s=new link;
    s->data=y;
    if(head->next==NULL)
    {   head->next=s;
        s->next=NULL;}
    p=Locate(head,x);
    if(p==NULL)
    cout<<"插入位置非法!";
    else
    {   s->next=p->next;
        p->next=s;}}
void change(link *p,elemtype x,elemtype y)
{   link *q;
    q=p->next;
    while(q!=NULL)
    {   if(q->data==x)
        q->data=y;
        q=q->next;}}
int main()
{   int n;
    elemtype x,y;
    link *p,*q;
    p=hcreat();
    print(p);
    cout<<"请输入要删除的元素:";
    cin>>y;
    deletel(p,y);
    print(p);
    cout<<"请输入插入位置的元素值(将待插元素插入到它的后面):";
    cin>>x;
    cout<<"请输入代插元素值:";
    cin>>y;
    insert(p,x,y);
    print(p);
    cout<<"请输入要修改前,后的元素值:";
    cin>>x>>y;
    change(p,x,y);
print(p);
return 0;}

⌨️ 快捷键说明

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