如何使用链表来存储表,并在表中搜索项



我在本地驱动器上保存了一个.txt文件,该文件由3列和许多行组成,第一列是字符,第二列是数字,第三列是日期。我如何使用链表(不使用STL)编写程序来存储该文件,然后能够通过让用户从第一列输入信息来搜索特定条目,以便计算机将从表中找到它并在该行中显示信息?

一种简单的方法是使用如下结构:

struct Row
{
    char * name;
    int    id;
    time_t date;
    Row * next;
};
Row * table = NULL;

该结构将存储.txt文件的一行和指向下一行的指针。这使它成为一个链表。table变量将指向列表的头部-第一行。

要存储列表,您将遍历表并使用fprintf将每一行写入新行。

for (Row * row = table; row != NULL; row = row->next)
    fprintf(file, "%s %i %i", row->name, row->id, row->date);

要在列表中搜索,您将遍历表并将目标字符串与每行(或无论您如何称呼它)的name成员进行比较。使用链表,你基本上只能进行顺序搜索。

for (Row * row = table; row != NULL; row = row->next)
    if (0 == stcmp(row->name, targetString))
        return row;

我假定您已经在课堂上介绍了用户输入和基本列表算法。

您可以在c++中复习以下概念,然后解决您的问题

  1. 文件处理
  2. 链表:此维基百科条目及其外部链接将帮助您了解链表的基本操作。
  3. 搜索:您可以实现您选择的搜索算法来查找所需的信息。像线性搜索这样的基本搜索算法就足够了。整合这些概念,解决您的问题!

你可以使用Don Reba的结构来实现链表的节点

相关内容

  • 没有找到相关文章

最新更新