打印出链接列表中的项目
Printing out items in linkedList
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
struct node {
int data;
node* next;
node* prev;
};
node *sentinel;
int numItem;
void pushBack(int new_data){
sentinel = new node();
while( (sentinel->next)!= NULL)
{
sentinel = sentinel->next;
}
node *toAdd = new node();
toAdd->data = new_data;
sentinel->next = toAdd;
toAdd->next = NULL;
numItem++;
}
void print(){
}
int main(){
pushBack(1);
pushBack(2);
pushBack(3);
pushBack(4);
pushBack(5);
print();
return 0;
}
我正在实现一个 pushBack() 方法,该方法将项目添加到链接列表的末尾。如何实现print()方法以打印出linkedList中的元素?我的问题是我不知道如何从 linkedList 的第一个索引开始。
你的问题实际上比你的print()
函数要深得多:据我所知,你的push_back()
没有按照你想要的方式工作!我强烈建议您拿一张纸,用各个元素绘制列表结构。最初,您将有一个空列表:
=========
| head -+-->nil
=========
插入一个元素时,您需要到达此结构,而不是:
========= ===========
| head -+------>| data=1 |
========= | next --+-->nil
nil<-+- prev |
===========
这样做只需要创建一个新节点并修改头部。添加更多节点更有趣,因为您要么还需要记住最后一个节点,要么需要遍历列表以在其末尾添加一些内容。按此顺序添加三个节点后的数据1
、2
和 3
后的图片应如下所示:
========= =========== =========== ===========
| head -+------>| data=1 |<-/-->| data=2 |<-/-->| data=3 |
========= | next --+--/ | next --+--/ | next --+->nil
nil<-+- prev | --+- prev | --+- prev |
=========== =========== ===========
显然,编码是在push_back()
完成的,但您当前的push_back()
不会产生这种结构。有了这个结构后,您只需从head
开始print()
并打印相应的data
字段。
相关文章:
- 从链接列表c++中删除一个项目
- 如何维护资源管理器项目视图中当前可见的项目列表
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 在给定的项目列表上实现搜索?
- 从文本文件读取,然后将项目存储到列表中
- 在修改项目列表时,请防止可编辑的Qcombobox选择更改
- 发送 QML 项目列表C++类连接到 QML :M16 错误
- 当SLIST_ENTRY不是项目列表的第一个成员时,使用单向链表
- 项目列表中的组合
- C ++ win 32,我想将项目列表添加到组合框中.我该怎么做
- 当试图在C++eclipse工作区中导出一个团队集(5个项目)时,项目列表是空的
- 随机化项目列表并将其输出到文本文件
- Eclipse CDT 自动更新/同步项目列表(以方便"refresh"相关项目集)
- 在每次迭代中以不同顺序循环遍历项目列表
- “添加到项目列表”是灰色的Qt项目管理对话框
- 从 std::vector<std::vector 中删除任意项目列表<T> >
- QT:来自多个旋转框的项目列表
- QComboBox动态项目列表
- QComboBox 不显示其项目列表
- 在浏览项目列表时保存多个项目的数据