C语言中使用单链表创建两个表ab,并提取出两个表中每一行的第一个数和最后一个数
时间: 2024-11-09 17:25:58 浏览: 7
在C语言中,你可以使用结构体和单链表来创建和操作两个独立的表,例如`tableA`和`tableB`。这里我们假设每个表都是由节点构成的,每个节点包含一个整数值(比如第一个数和最后一个数)。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建一个新的链表节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
}
return newNode;
}
// 向链表添加元素
void appendToList(Node** head, int value) {
Node* newNode = createNode(value);
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 提取并打印链表的首尾元素
void printFirstAndLast(Node* head) {
if (head == NULL) {
printf("List is empty.\n");
} else {
printf("First element: %d\n", head->data);
Node* temp = head;
while (temp->next != NULL) {
temp = temp->next;
}
printf("Last element: %d\n", temp->data);
}
}
// 分别创建和打印 tableA 和 tableB
int main() {
// 初始化两个链表头部为空
Node* tableA_head = NULL;
Node* tableB_head = NULL;
// 添加数据到tableA
for (int i = 0; i < 5; ++i) { // 示例:tableA有5个元素
appendToList(&tableA_head, i+1); // 假设第一个数是1
}
// 添加数据到tableB
for (int i = 6; i < 10; ++i) { // 示例:tableB有4个元素
appendToList(&tableB_head, i+1); // 假设第一个数是7
}
// 打印tableA和tableB的首尾元素
printf("Table A:\n");
printFirstAndLast(tableA_head);
printf("\nTable B:\n");
printFirstAndLast(tableB_head);
return 0;
}
```
在这个示例中,你需要自行填充数据和调整循环次数以适应你的实际需求。
阅读全文