简单 双向链表得增删改查 c++描述

硅谷探秘者 1676 0 0

简单 双向链表得增删改查 c++描述

class node{
public :
    int data;
    node * next;
    node * prev;
};
#include"node.h"
class relink{
private :
    node * head;//首节点
    node * tail;//尾节点

public:
    relink(){
        head=new node();//初始化,不做数据得处理
        tail=new node();
        head->next=tail;
        head->prev=NULL;
        tail->next=NULL;
        tail->prev=head;
    }
    void add(int data);//增
    void del(int data);//删
    void edit(int olddatda,int newdata);//;改
    node * getnode(int data);//查
    void print();//循序打印
};
#include<iostream>
#include "relink.h"
using namespace std;
void relink::add(int data){
    node * end=tail;
    node * p=tail->prev;
    node * n =new node();
    n->data=data;
    n->prev=p;
    n->next=end;
    p->next=n;
    end->prev=n;
}
void relink::print(){
    node * n=head;
    while(n->next->next!=NULL){
        cout<<n->next->data<<endl;
        n=n->next;
    }
}
void relink::edit(int olddata,int newdata){
    node * n=head;
    while(n->next->next!=NULL){
        if(n->next->data==olddata){
            n->next->data=newdata;
            return;
        }
        n=n->next;
    }
}
void relink::del(int data){
    node * n=head->next;
    while(n->next!=NULL){
        if(n->data==data){
            node * pr  = n->prev;
            node * old = n->next;
            pr->next=old;
            old->prev=pr;
            return;
        }
        n=n->next;
    }
}
node * relink::getnode(int data){
    node * n=head;
    while(n->next->next!=NULL){
        if(n->next->data==data){
            return n->next;
        }
        n=n->next;
    }
    return NULL;
}
int main(){
    relink * rl=new relink();
    rl->add(0);
    rl->add(1);
    rl->add(2);
    rl->edit(2,23);
    rl->del(23);
    rl->print();
    node * n=rl->getnode(1);
    if(n!=NULL){
        cout<<"get:"<<n->data<<endl;
    }
    return 1;
}

QQ截图20181129192230.png


猜你喜欢
数据结构与算法 2243 c++classnode{public:intdata;node*next;};#include"node.h"usingnamespacestd;classstack
数据结构与算法 2608 式栈的出栈入栈操作c++基于//节点classnode{public:intdata;node*next;node*prev;};//#include"node.h
框架 1790 创建一个Maven项目,2.修jdk版本(因为这里使用的springboot是1.5,在2.0一下springboot推荐使用1.7)!--修jdk版本springboot2.0之前推荐使用
weblog 1789 因为需求需要,所以直接写一个数据结构 直接上代码: usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; namespaceConsoleApplication2 { classProgram { staticvoidMai
official 486 leetcode第237题()原接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/submissions/问题
数据结构与算法 3994 递归实现合并两递-合并后保持递序列java数据结构:算法:递归节点packageclub.test;/****节点*@authorjiajia
java虚拟机(jvm) 5101 。一个类的内部名就是这个类的完全限定名,其中的点号用斜线代替。例如,String的内部名为java/lang/String。2.类型符内部名只能用于类或接口类型。所有其他Java类型,比如字段类型,
official 489 ,等待客户端发送消息。先看一个bio最的例子:publicstaticvoidmain1(String[]args)throwsIOException{ //绑定端口 ServerSocketserv
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7 2021年04月  4 2021年05月  4 2021年06月  1 2021年07月  7 2021年08月  2 2021年09月  8 2021年10月  9 2021年11月  16 2021年12月  14 2022年01月  7 2022年05月  1 2022年08月  3 2022年09月  2 2022年10月  2 2022年12月  5 2023年01月  3
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。