首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将txt文件读入链表,但打印仅打印链表中的第一个节点

在将文本文件读入链表并打印链表内容时,如果只打印了链表中的第一个节点,可能是因为链表的构建或遍历过程中出现了问题。以下是一个完整的示例,展示如何将文本文件读入链表并正确打印链表中的所有节点。

示例:将文本文件读入链表并打印

假设我们有一个文本文件 example.txt,内容如下:

代码语言:javascript
复制
line 1
line 2
line 3

我们将使用 JavaScript 来实现这个功能。首先,我们需要定义一个链表节点类和一个链表类,然后编写代码将文件内容读入链表并打印链表。

1. 定义链表节点类和链表类

代码语言:javascript
复制
class ListNode {
  constructor(data) {
    this.data = data;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }

  append(data) {
    const newNode = new ListNode(data);
    if (this.head === null) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next !== null) {
        current = current.next;
      }
      current.next = newNode;
    }
  }

  printList() {
    let current = this.head;
    while (current !== null) {
      console.log(current.data);
      current = current.next;
    }
  }
}

2. 读取文件并将内容添加到链表

我们将使用 Node.js 的 fs 模块来读取文件内容。

代码语言:javascript
复制
const fs = require('fs');
const readline = require('readline');

const linkedList = new LinkedList();

const rl = readline.createInterface({
  input: fs.createReadStream('example.txt'),
  output: process.stdout,
  terminal: false
});

rl.on('line', (line) => {
  linkedList.append(line);
});

rl.on('close', () => {
  console.log('Contents of the linked list:');
  linkedList.printList();
});

解释

  1. 定义链表节点类和链表类
    • ListNode 类表示链表的一个节点,包含数据和指向下一个节点的指针。
    • LinkedList 类表示链表,包含头节点和一些操作链表的方法,如 appendprintList
  2. 读取文件并将内容添加到链表
    • 使用 Node.js 的 fs 模块和 readline 模块来逐行读取文件内容。
    • 每读取一行,就将该行内容添加到链表中。
    • 当文件读取完毕时,调用 printList 方法打印链表中的所有节点。

运行代码

确保你已经安装了 Node.js,然后在命令行中运行以下命令:

代码语言:javascript
复制
node your_script_name.js

这将读取 example.txt 文件的内容,并将每一行添加到链表中,最后打印链表中的所有节点。

常见问题排查

  1. 链表构建问题:确保在 append 方法中正确地将新节点添加到链表的末尾。
  2. 文件读取问题:确保文件路径正确,并且文件内容能够被逐行读取。
  3. 链表遍历问题:确保在 printList 方法中正确地遍历链表,打印每个节点的数据。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券