类实现线性链表

实现圆形线性链表算法(附完整源码) 我们定义了一个Node类来表示链表节点。AddLast方法用于添加节点,如果链表为空则直接将新节点设置为头和尾,并且让尾节点指向头节点;在计算机科学中,线性链表是一种常见的数据结构,它由节点和指向其他节点的指针组成。然而,有时候需要实现一个循环的线性链表,即最后一个节点指向第一个节点,形成一个环形结构。首先,我们需要定义一个Node类作为我们链表的节点,包括当前节点的值和指向下一个节点的指针。在Main方法中,我们演示了如何使用C#实现圆形线性链表,并分别输出初始状态和删除了某个节点后的状态。 阅读详情
LinkList.cpp:
*********************************************************************************************************************


#include<iostream.h>
#include"ListClass.h"


void main()
{
    int insertPostion,insertNum,deletedNum;

   
    cout<<"Please input numbers to creat a linklist:"<<endl;
    Linklist a;

    cout<<"Please input the inserted postion:"<<endl;
    cin>>insertPostion;
    cout<<"Please input the inserted number:"<<endl;
    cin>>insertNum;
    a.insert(insertPostion,insertNum);

    cout<<"Please input the deleted number:"<<endl;
    cin>>deletedNum;
    a.listdelete(deletedNum);
}


ListClass.h:
*****************************************************************************************************************

#include<iostream.h>
#include<malloc.h>

class Linklist
{
public:
Linklist()
{
   
    int x,cycle=1;
    head=(linknode *)malloc(sizeof(linknode));
    p=head;
    while(cycle)
    {
        cin>>x;
        if(x!=0)
        {
            s=(linknode *)malloc(sizeof(linknode));
            s->data=x;p->next=s;p=s;
        }
        else cycle=0;
    }

    p->next=0;
   
    cout<<"the created linklist:"<<endl;
 
        p=head;
        s=p->next;
        while(s!=0)
        {
            cout<<s->data<<" ";
        s=s->next;
        }
        cout<<endl;
   

}

void insert(int i,int x)
{
   
    int j;
    s=(linknode *)malloc(sizeof(linknode));
        s->data=x;
    if(i==0)
    {
        s->next=head;head=s;}
    else
    {
        p=head;j=1;
            while(p!=0&&j<i)
            {
                j++;
                p=p->next;
            }
            if(p!=0)
            {
                s->next=p->next;
                p->next=s;
            }
            else
                cout<<"unfind"<<endl;
}
    cout<<"the insered linklist:"<<endl;
    p=head;
        s=p->next;
        while(s!=0)
        {
            cout<<s->data<<" ";
        s=s->next;
        }
        cout<<endl;
}


void listdelete(int x)
{
   
    if(head==0)
        cout<<"error"<<endl;
    if(head->data==x)
    {
        p=head;
        head=head->next;
        free(p);
    }
    else
    {
        q=head;p=head->next;
        while(p!=0&&p->data!=x)
            if(p->data!=x)
            {
                q=p;p=p->next;
            }
            if(p!=0)
            {
                q->next=p->next;
                free(p);
                cout<<"the deleted linklist:"<<endl;
                    p=head;
           
        s=p->next;
        while(s!=0)
        {
            cout<<s->data<<" ";
        s=s->next;
        }
        cout<<endl;                            

            }
            else
                cout<<"unfind"<<endl;
           
           
        }

}

private:
   struct linknode
{
    int data;
    linknode *next;
   } *head,*p,*q,*s;
};




   



   


C#实现循环线性链表(Circular Linear Linked List)算法 循环线性链表是一种特殊类型的线性链表,其最后一个节点指向链表的头部节点,形成一个闭环。在循环线性链表中,每个节点都包含一个数据元素和一个指向下一个节点的指针。这种数据结构可以用于解决循环相关的问题,例如循环遍历和循环删除。通过上述算法和代码示例,我们可以实现循环线性链表的基本功能,并能够在其中插入和删除节点。这种数据结构可以用于解决循环相关的问题,例如循环遍历和循环删除。类,表示循环线性链表中的节点。对象,并演示了插入元素、插入指定位置的元素和删除指定位置的元素的操作。类,实现了循环线性链表的基本操作。 阅读详情

相关推荐

线性链表:链式存储结构的线性表

在顺序存储结构中,元素在内存中连续存储,而在链式存储结构中,元素通过节点和指针的连接来存储。通过指针的连接,线性链表可以动态地分配内存来存储数据,并且可以在运行时灵活地插入、删除和修改节点。类则是链表的主要实现,包含了一系列操作方法,如初始化链表、判断链表是否为空、追加元素、在指定位置插入元素、删除元素、查找元素、获取链表长度和显示链表元素等。使用示例部分展示了如何使用链表,包括判断链表是否为空、追加元素、在指定位置插入元素、删除元素、查找元素、获取链表长度以及显示链表元素。和一个指向下一个节点的指针。

PixelNinja的博客 97

一般线性链表类的C++实现

以下的C++类LinkList实现了线性链表的一般操作。可以直接在其他的程序中直接建立它的对象,其中线性表中的数据在此为整型,具体应用的时候可以适当的修改,并可以在此基础上继续封装特定的功能。头文件:LinkList.htypedef struct LNode { int data; struct LNode *next;}LNode, *pLinkList;class LinkList {pri

Fe Tech 2808

链式线性表实现

C++ 链式线性表实现

java数据结构之链式线性表的实现

线性表 线性表的相关概念: pbulic class SingleLinkNode<T> { public T data; public SingleLinkNode next; pulbic SingleLinkNode(){ super(); } public SingleLinkNode(T t){ this.data = t ; this.next= nu...

Hicodden的博客 323

数据中心GPU芯片性能参数速查表(Nvidia+国产算力卡)

本文提供了一份数据中心GPU芯片性能参数速查表,涵盖Nvidia与国产算力卡两大阵营。文章详细解读了算力、显存、互连技术及功耗等关键性能指标,并对比了A100、H100、昇腾910B等主流型号,旨在帮助用户根据AI训练、推理等实际场景,做出高效的硬件选型与成本评估决策。

a0b1c2d3的专栏 837

数据讲述中国故事!和鲸助力中国综合社会调查(CGSS)数据分析与可视化大赛圆满收官

用数据研究中国问题、总结中国道路、讲述中国故事。和鲸作为协办单位全程支持本次大赛,为中国人民大学中国调查与数据中心实施全套赛事系统,同时提供完备而周全的赛事运营服务。

ModelWhale的博客 1412

3-16线性链表

一、单链表:data-nexttypedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;1.头插法建立链表:LinkList CreatList1(LinkList &amp;L){LNode *s;int x;L=(LinkList)malloc(sizeof(LNode));L-&gt;next=NULL;//...

qinchun_bei的博客 262

别再到处找模板了!我用这套软著申请材料(含用户手册+源代码模板)两个月搞定

本文提供了一套高效的软著申请材料模板,包括用户手册和源代码模板,帮助开发者两个月内快速完成申请。通过实战指南和常见误区解析,详细介绍了材料准备的规范与技巧,确保格式合规性,大幅提升审核通过率。

weixin_29268637的博客 549

C++使用模板类创建线性表(顺序、链式)并应用

在讨论线性表的顺序及链式存储映像,并在此基础上给出其基本操作的实现之前,先以模板的形式为ADT List建立一个抽象类。 //List.h #pragma once template <class ElemType> class List { public: //后面加个const 表明该函数不会改变成员函数的值!该函数可以被常量对象访问(const)。 //注意 加了const...

Ai_King的博客 1839

system_stm32f10x.c文件分析

配置系统时钟(包括系统时钟源、锁相环(PLL)倍频系数、高级高性能总线(AHB)/ 高级外设总线(APBx)预分频器以及闪存相关设置)。该函数在系统复位后的启动阶段被调用,且调用时机早于跳转到主程序之前。

Jia shuheng的博客 603

LLM评测框架Ragas:测试RAG的性能出现TimeoutError()的解决办法(Ragas+langchain+ollama)

无奈之下,自己找到了一个解决办法,在ragas支持的llm类库中加了一个如下的类,支持ollama、langchian_ollama使用ragas测试报错的问题。可以将如上的库放到你的ragas的系统库的llms目录下,然后修改__init__.py如下。最近用ragas测试rag的性能,发现老出现TimeoutError()的错误。这是一个临时的解决办法,具体等待官方给出最终的解决方案。后来发现官方也没有尽快支持的计划。然后就可以用如下代码进行一些验证。

Criss@陈磊 666

C 类LinkList实现线性链表的一般操作

         以下的C++类LinkList实现了线性链表的一般操作。可以直接在其他的程序中直接建立它的对象,其中线性表中的数据在此为整型,具体应用的时候可以适当的修改,并可以在此基础上继续封装特定的功能。    头文件:LinkList.h    typedef struct LNode {  int data;  struct LNode *next;  }LNode, *pLinkLis

Write One,Run Everywhere 972

数据挖掘实战-基于KMeans算法对超市客户进行聚类分群

本实验基于KMeans算法对超市客户进行了聚类分群。通过对客户购物数据进行聚类,我们成功将客户分为不同的群体。每个群体代表了具有相似购物行为和偏好的客户群体。通过实验结果,我们发现了客户群体之间的明显差异和共性。不同群体的客户在购买频率、购物金额和购买种类等方面有所区别。这为超市提供了重要的市场细分信息,帮助超市经营者更好地了解不同客户群体的需求和喜好,制定有针对性的营销策略和商品推荐,提高客户满意度和忠诚度。此外,实验还揭示了超市客户的购物行为规律,为超市优化商品陈列和促销策略提供了指导。

m0_64336780的博客 2万+

[C++] 一般线性链表类的C++实现

以下的C++类LinkList实现了线性链表的一般操作。可以直接在其他的程序中直接建立它的对象,其中线性表中的数据在此为整型,具体应用的时候可以适当的修改,并可以在此基础上继续封装特定的功能。头文件:LinkList.htypedef struct LNode { int data; struct LNode *next;}LNode, *pLinkList;class LinkLis

shine的现在进行时 967

使用Python实现深度学习模型:智能光污染监测与管理

本项目将通过以下几个步骤实现智能光污染监测:收集光污染图像数据数据预处理构建深度学习模型训练模型评估模型部署模型用于实时监测通过本文介绍的步骤,我们实现了一个使用Python和深度学习技术的智能光污染监测与管理系统。该系统能够自动识别光污染源,为相关管理部门提供科学依据,以便更好地规划和管理城市照明。同时,这一方法还可以扩展到其他环境监测领域,为环境保护贡献力量。

Echo_Wish 598

从业务角色到工作台:一步步创建 SAP Fiori Launchpad Space 与 Page

SAP S/4HANA Launchpad 配置优化指南:从业务角色出发构建高效工作台 本文针对S/4HANA项目中用户普遍反映的"入口难找"问题,提出基于Spaces和Pages的系统化解决方案。通过"以工作岗位为中心"的设计理念,将Launchpad信息架构重构为:一个业务角色对应一个Space,每个Space包含1-5个Page,Page内按任务划分2-5个Section,每个Section放置3-7个Tiles。文章详细阐述了从Business Role入手配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

线性链表在java中运用

线性链表在Java中可以使用类来实现。具体来说,可以定义一个链表节点类,该类包括节点值和指向下一个节点的指针。然后,可以定义一个链表类,该类包括对链表头节点和链表尾节点的引用,以及一些方法来操作链表,例如添加节点、删除节点和遍历节点等。以下是一个示例代码: public class ListNode { int val; ListNode next; ListNode(in...

weixin_35755434的博客 136

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

编写一个算法实现n个整数类型数据的线性链表的逆置并实现整数类型数据的线性链类中的平均数。

编写一个算法实现n个整数类型数据的线性链表的逆置并实现整数类型数据的线性链类中的平均数。 #include<stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node *link; }LNode,*LinkList; //创建链表结构体 LinkList Creat(int n){ //创建链

qq_53770445的博客 1912

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python线性链表_Python实现数据结构线性链表(单链表)算法示例

本文实例讲述了Python实现数据结构线性链表(单链表)算法。分享给大家供大家参考,具体如下:初学python,拿数据结构中的线性链表存储结构练练手,理论比较简单,直接上代码。#!/usr/bin/python# -*- coding:utf-8 -*-# Author: Hui# Date: 2017-10-13# 结点类,class Node:def __init__(self, data)...

weixin_39976733的博客 110

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python 单向链表实现快速排序_Python实现数据结构线性链表(单链表)算法示例...

本文实例讲述了Python实现数据结构线性链表(单链表)算法。分享给大家供大家参考,具体如下:初学python,拿数据结构中的线性链表存储结构练练手,理论比较简单,直接上代码。#!/usr/bin/python# -*- coding:utf-8 -*-# Author: Hui# Date: 2017-10-13# 结点类,class Node:def __init__(self, data)...

weixin_39622905的博客 283

基于C++的数据结构-3-线性链表

基于C++的数据结构--单向链式存储表(链表)

qq_50533529的博客 484
上一篇: 汇编语言超浓缩教程(转载)
下一篇: 塔罗牌生日密码占卜
codeHappy
博客等级 码龄22年 1粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值