请写出c语言代码,完成三元组顺序表的实现
时间: 2024-09-24 07:02:32 浏览: 44
数据结构一学期作业(顺序栈,三元组,串,树,邻接表,邻接矩阵,二叉树,等等代码c语言实现)
在C语言中,我们可以使用结构体来实现一个简单的三元组顺序表,也就是每个元素包含三个字段的数据结构。这里是一个基本的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个三元组结构体
typedef struct {
int key; // 第一个元素
float value1; // 第二个元素
double value2; // 第三个元素
} Triple;
// 创建一个新的三元组顺序表节点
Triple* create_triple(int k, float v1, double v2) {
Triple* new_node = (Triple*) malloc(sizeof(Triple));
new_node->key = k;
new_node->value1 = v1;
new_node->value2 = v2;
return new_node;
}
// 在顺序表尾部添加新元素
void append_triple(Triple** list, int k, float v1, double v2) {
if (*list == NULL) {
*list = create_triple(k, v1, v2);
} else {
Triple* current = *list;
while (current->next != NULL) {
current = current->next;
}
current->next = create_triple(k, v1, v2);
}
}
// 打印顺序列表中的所有三元组
void print_triples(Triple* head) {
Triple* temp = head;
while (temp != NULL) {
printf("Key: %d, Value1: %.1f, Value2: %.1lf\n", temp->key, temp->value1, temp->value2);
temp = temp->next;
}
}
int main() {
Triple* triple_list = NULL;
// 添加一些元素
append_triple(&triple_list, 1, 1.5, 1.75);
append_triple(&triple_list, 2, 2.0, 2.25);
append_triple(&triple_list, 3, 2.5, 2.75);
// 打印列表内容
print_triples(triple_list);
return 0;
}
```
在这个示例中,我们首先定义了一个`Triple`结构体,然后创建了`create_triple`函数用于生成新的节点,`append_triple`函数负责插入节点到列表尾部,`print_triples`用于遍历并打印所有元素。
阅读全文