简单 单链表的增删改查 c++描述

硅谷探秘者 2645 0 0

简单 单链表的增删改查 c++描述

class node{
public :
    int data;
    node * next;
};
#include "node.h"
using namespace std;
class stack{
public :
    node * head;
    stack(){
        head=NULL;
    }
    void add(int data);
    void del(int data);
    void print();
    void edit(int olddata,int newdata);
    node * getnode(int data);
};
#include<iostream>
#include "stack.h"
using namespace std;
void stack::add(int data){//添加节点
        if(head==NULL){    
            head=new node();
            head->data=data;
            head->next=NULL;
        }else{
            node * n=head;
            while(n->next!=NULL){
                n=n->next;
            }
            node * n_=new node();
            n_->data=data;
            n_->next=NULL;
            n->next=n_;
        }
}
void stack::print(){//打印节点
        node * n=head;
        while(n!=NULL){
            cout<<n->data<<" ";
            n=n->next;
        }
}
void stack::del(int data){//删除节点
    if(head!=NULL){
        if(head->data==data){
            head=head->next;
            return;
        }
    }else{
        return;
    }
    node * n=head;
    while(n->next!=NULL){
        if(n->next->data==data){
            node * n_=n->next;
            n_=NULL;
            n->next=n->next->next;
            return;
        }
        n=n->next;
    }
}
void stack::edit(int olddata,int newdata){//更改节点data
    node * n=head;
    while(n!=NULL){
        if(n->data==olddata){
            n->data=newdata;
            return;
        }
        n=n->next;
    }
}
node* stack::getnode(int data){//获取节点
    node * n=head;
    while(n!=NULL){
        if(n->data==data){
            return n;
        }
        n=n->next;
    }
    return NULL;
}

void main(){
    stack * s=new stack();
    s->add(1);
    s->add(2);
    s->add(3);
    s->add(4);
    s->del(1);
    s->edit(3,6);
    s->print();
    cout<<endl;
    cout<<s->getnode(6)->data<<endl;
}


QQ截图20181128214407.png


猜你喜欢
数据结构与算法 2092 双向c++classnode{public:intdata;node*next;node*prev;};#include"node.h"classrelink
数据结构与算法 2931 式栈出栈入栈操作c++基于双向//节点classnode{public:intdata;node*next;node*prev;};//双向#include"node.h
official 781 leetcode第237题()原接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/submissions/问题
linux系统 1602 编写shell脚本有两点要求1.脚本一般都是以#!/bin/bash开头(告诉我们系统我们这个脚本使用bash进行解释,不加也可以运行)2.给予脚本可执行权限3.执行shell脚本方式1)./脚本名2)sh+脚本名(此种方式不需要有可执行权限,但是不建议使用)
框架 2139 创建一个Maven项目,2.修jdk版本(因为这里使用springboot是1.5,在2.0一下springboot推荐使用1.7)!--修jdk版本springboot2.0之前推荐使用
数据结构与算法 4311 递归实现合并两递-合并后保持递序列java数据结构:算法:递归节点packageclub.test;/****节点*@authorjiajia
框架 2557 1.项目结构2.pom文件依赖?xmlversion="1.0"encoding="UTF-8"?projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.
official 735 leetcode第79题(中等)原接:https://leetcode-cn.com/problems/word-search/问题给定一个二维网格和一个词,找出该词是否存在于网格中。
归档
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 2023年02月  1 2023年03月  4 2023年04月  2 2023年06月  3 2023年07月  4 2023年08月  1 2023年10月  1 2024年02月  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。