使用C语言建立一个存储字符的线性表,从键盘输入线性表中元素,如果输入为“@”,则中止输入;
时间: 2024-11-20 10:39:00 浏览: 30
在C语言中,你可以通过定义结构体来创建一个可以存储字符的线性表,比如定义一个`char`类型的数组,并使用指针来表示线性表中的元素位置。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含动态内存分配函数
// 定义一个结构体来表示字符线性表的一个元素
typedef struct {
char data;
struct Node* next; // 指向下一个元素的指针
} Node;
// 创建一个新的节点并初始化
Node* createNode(char value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
}
return newNode;
}
// 动态添加元素到线性表
void insertElement(Node** head, char value) {
Node* newNode = createNode(value);
if (*head == NULL) {
*head = newNode;
} else {
Node* current = *head;
while (current->next != NULL && current->next->data != '@') {
current = current->next;
}
if (current->next == NULL) {
current->next = newNode;
}
}
}
int main() {
Node* head = NULL;
printf("请输入线性表中的元素(输入 '@' 结束输入):\n");
while (true) {
char input;
scanf("%c", &input);
if (input == '@') break; // 如果输入的是 '@',结束输入循环
insertElement(&head, input); // 将输入的字符添加到线性表
}
// 如果你想遍历并打印线性表,这里提供一个基本的遍历方法
Node* temp = head;
while (temp != NULL) {
printf("%c ", temp->data);
temp = temp->next;
}
printf("\n");
// 清理内存
while (head != NULL) {
Node* tempNext = head->next;
free(head);
head = tempNext;
}
return 0;
}
```
在这个程序中,我们首先定义了一个`Node`结构体来表示每个字符元素。接着,我们创建了插入元素的方法`insertElement`,当用户输入`@`时跳出输入循环。最后,我们可以遍历整个线性表并显示其内容。
阅读全文