C中用函数实现顺序表的创建及遍历(输出),输入整数,空格间隔,以-1结束
时间: 2024-09-22 10:06:59 浏览: 30
2010年3月计算机二级c语言试题及详细解答答案.doc
在C语言中,我们可以使用数组结构来实现简单的顺序表,并提供函数来创建、插入元素以及遍历列表。这里有一个基本的例子,我们将创建一个顺序表,用户可以输入整数,用空格分隔,直到输入-1表示结束。
首先,我们需要定义一个结构体`ListNode`来存储节点数据和指向下一个节点的指针:
```c
typedef struct ListNode {
int data;
struct ListNode* next;
} ListNode;
```
然后,我们创建一个函数来初始化顺序表并处理用户输入:
```c
void createAndPrintList(int n) {
ListNode* head = NULL;
ListNode* current = NULL;
// 创建一个循环来获取用户输入,直到遇到-1
while (n != -1) {
scanf("%d", &n); // 读取一个整数
// 如果头节点为空,创建新的头节点
if (!head) {
head = (ListNode*)malloc(sizeof(ListNode));
head->data = n;
head->next = NULL;
} else {
current->next = (ListNode*)malloc(sizeof(ListNode));
current = current->next;
current->data = n;
}
// 检查是否需要添加更多元素
if (n == -1)
break;
printf("%d ", n); // 输出当前元素
}
// 遍历并打印整个列表
current = head;
while (current) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
```
最后,你可以通过下面的方式使用这个函数:
```c
int main() {
int inputNum;
printf("请输入整数(-1结束): ");
scanf("%d", &inputNum);
while (inputNum != -1) {
createAndPrintList(inputNum);
printf("请输入下一项(-1结束): ");
scanf("%d", &inputNum);
}
return 0;
}
```
阅读全文