arrays - 如何用这个结构作为数据创建一个链表?
问题描述
我正在尝试打印出一个表格,即周期表中的前十个元素作为链接列表,其中结构作为数据。该结构保存元素的数据,如下所示:
typedef struct element{
char *name;
char *symbol;
float weight;
}element;
然后像这样创建列表本身:
typedef struct list{
struct element elements[]; //an array holding element types?
struct list *next;
}list;
所以因为我需要打印出前 10 个元素,所以我尝试使用数组来声明名称、符号和权重,但我无法连接在链表中使用哪种方式作为数据:
char *names[10] = {"Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon"};
char *symbols[10] = {"H","He","Li","Be","B","C","N","O","F","Ne"};
float weights[10] = {1.008,4.003,6.941,9.012,10.811,12.011,14.007,15.999,18.998,20.180};
解决方案
链表具有元素数组是不寻常的,尽管在某些情况下它可能很有用。在您的情况下,我认为每个列表元素都有一个元素的链表更合适:
typedef struct list{
struct element element;
struct list *next;
}list;
作为风格问题,我们最终element
使用结构名称中使用的名称,作为 typedef 的名称和结构成员。我建议将它们重命名为struct ELEMENT
and tElement
。与列表结构相同。这将使它像:
typedef struct ELEMENT {
char *name;
char *symbol;
float weight;
} tElement;
typedef struct LIST {
tElement element;
struct LIST *next;
} tList;
我把它留给你来开发创建和添加到列表以及打印它的功能。
推荐阅读
- asp.net - 将 Elasticsearch 与 .Net Core 2.2 一起使用是否可行?如何配置它以获取简单的获取查询 API?
- javascript - 如何从客户端构建查找查询以搜索 mongo db?
- php - 在级联下拉列表中显示容易选择的数据
- html - 为什么 chrome 在我的表单的某个字段中显示地址建议?
- mysql - JDBCTemplate 不处理数据库中的 Unicode 字符
- sql-server - 许多表上的 EF Core 一对一关系允许重复条目
- node.js - 在使用 chai 进行测试期间无法将错误与 throw 匹配
- java - Unknown name value [] for enum class having multiple enums
- c++ - 使用 cmake 在 macOS 上共享库的链接器问题
- experimental-design - 如何在 ztree 中使用表加载器?