c++ listnode 赋值_C++操作单链表ListNode

c++ listnode 赋值_C++操作单链表ListNodeC 操作单链表 ListNode 通过 C 进行单链表的创建 打印以及利用栈实现逆序打印 单链表的创建和打印 includeusing 定义结构体 structListNo intval ListNode next classoperate public 创建单链表 voidcreateLi ListNode head int

C++操作单链表ListNode

通过C++进行单链表的创建、打印以及利用栈实现逆序打印。

单链表的创建和打印

#include

using namespace std;

//定义结构体

struct ListNode{

int val;

ListNode* next;

};

class operateList

{

public:

/*创建单链表*/

void createList(ListNode *head)

{

int i;

ListNode* phead=head; //不破坏头指针

for(i=1;i<10;i++){

ListNode* node=new ListNode;

node->val=i;

node->next=NULL;

phead->next=node;

phead=node;

}

cout<

}

/*打印链表*/

void printList(ListNode* head)

{

ListNode* phead=head;

while(phead->next!=NULL)

{

cout

phead=phead->next;

}

cout

}

};

int main()

{

ListNode* head=new ListNode;

operateList ll;

head->val=0;

head->next=NULL;

ll.createList(head);

ll.printList(head);

return 0;

}

逆序打印单链表的方式

#include

#include

#include

using namespace std;

//定义结构体

struct ListNode{

int val;

ListNode* next;

};

class operateList

{

public:

/*创建单链表*/

void createList(ListNode *head)

{

int i;

ListNode* phead=head; //不破坏头指针

for(i=1;i<10;i++){

ListNode* node=new ListNode;

node->val=i;

node->next=NULL;

phead->next=node;

phead=node;

}

cout<

}

/*打印链表*/

void printList(ListNode* head)

{

ListNode* phead=head;

while(phead->next!=NULL)

{

cout

phead=phead->next;

}

cout

}

/*利用栈先进后出的思想*/

vector printListInverseByStack(ListNode* head){

vector result;

stack arr;

int i;

ListNode* phead=head;

while(phead->next!=NULL)

{

arr.push(phead->val);

phead=phead->next;

}

arr.push(phead->val); //最后一个元素

while(!arr.empty())

{

result.push_back(arr.top());

arr.pop();

}

return result;

}

void printVector(vector result)

{

int i;

for(i=0;i

cout<

cout<

}

};

int main()

{

ListNode* head=new ListNode;

vector result;

operateList ll;

head->val=0;

head->next=NULL;

ll.createList(head);

ll.printList(head);

//利用栈逆序

result=ll.printListInverseByStack(head);

cout<

ll.printVector(result);

return 0;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229765.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午3:56
下一篇 2026年3月16日 下午3:56


相关推荐

  • pytest-allure_pytest数据驱动

    pytest-allure_pytest数据驱动前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月28日
    15
  • 越南三年级数学题

    越南三年级数学题网上的题目是这样的 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 越南保禄小学三年班 学生需要由上至下 从左到右的顺序 填入 1 至 9 的数字 可重复填写 并按先乘除后加减的运算法则 完成整条算式 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在越南教育科学研究所修读博士学位的阮玉江则利用计算机程序 找出所有可能组合 结果竟 印满 74 张 A4 纸 她称计算机能轻易计出答案 但人脑肯定不容易 其中 nbsp nbsp nbsp nbsp nbsp nbsp 一

    2026年3月19日
    2
  • 自定义 MCP Server,在 cursor 中连接本地 MySQL 实现了统计分析

    自定义 MCP Server,在 cursor 中连接本地 MySQL 实现了统计分析

    2026年3月16日
    2
  • QT5 使用QCustomplot绘制频谱瀑布图并封快速傅里叶变换fft类

    QT5 使用QCustomplot绘制频谱瀑布图并封快速傅里叶变换fft类近期想要做个上位机显示SDR设备的信号频谱,频谱瀑布图展示最为直观,经过多方评估比较最后选择了QCustomsplot图形库,相比于其他选择比如修改RGB像素刷新图片来说这种方式要简单的多,先做了个demo出来试试效果,话不多说先上动图。下面介绍方方法:第一步,QT没有自带QCustomplot库需要自行下载,实际上就是一个qcustomplot.h和qcustomplot.cpp文件,添加进工程就可以了,不想下载的后面我会上传de…

    2022年10月16日
    8
  • 致 Python 初学者「建议收藏」

    致 Python 初学者「建议收藏」欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多Python的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触python这门编程语言,从2009年开始单一使用python应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的Python初学者走出困境、快速成长。希望我的经验能真正帮到你

    2022年4月27日
    44
  • 通过Kivy将Python文件打包成apk

    通过Kivy将Python文件打包成apk一.前言Kivy是一个开源的Python框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等。且Kivy可以运行于Windows,Linux,MacOS,Android,iOS等当前绝大部分主流桌面/移动端操作系统。周日在配置Kivy时,教程繁多繁琐,让自己有些找不着北,挨个试后,经常在某处卡壳,屡屡碰壁,希望自己接下来的

    2022年5月20日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号