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

硅谷探秘者 1073 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


猜你喜欢
数据结构与算法 1715 c++classnode{public:intdata;node*next;};#include"node.h"usingnamespacestd;classstack
数据结构与算法 2121 式栈的出栈入栈操作c++基于//节点classnode{public:intdata;node*next;node*prev;};//#include"node.h
框架 1233 创建一个Maven项目,2.修jdk版本(因为这里使用的springboot是1.5,在2.0一下springboot推荐使用1.7)!--修jdk版本springboot2.0之前推荐使用
official 95 leetcode第237题()原接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/submissions/问题
weblog 1403 因为需求需要,所以直接写一个数据结构 直接上代码: usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; namespaceConsoleApplication2 { classProgram { staticvoidMai
数据结构与算法 3510 递归实现合并两递-合并后保持递序列java数据结构:算法:递归节点packageclub.test;/****节点*@authorjiajia
java虚拟机(jvm) 4275 。一个类的内部名就是这个类的完全限定名,其中的点号用斜线代替。例如,String的内部名为java/lang/String。2.类型符内部名只能用于类或接口类型。所有其他Java类型,比如字段类型,
official 49 ,等待客户端发送消息。先看一个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
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo
目录