用C语言写出用一个递归函数实现对一个链表的值进行正逆序输出ABCCBA
时间: 2024-10-07 22:05:44 浏览: 37
在C语言中,我们可以使用递归函数来遍历并打印链表的元素,无论是正序还是逆序。这里有一个简单的例子,首先我们假设链表节点结构如下:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
然后你可以编写两个递归函数,一个是正序遍历,另一个是逆序遍历:
```c
void printListForward(Node* head) {
if (head == NULL) return; // 基线条件:空链表
printf("%d", head->data); // 输出当前节点的数据
printListForward(head->next); // 递归调用处理下一个节点
}
void printListReverse(Node* head) {
if (head == NULL) return; // 基线条件:空链表
printListReverse(head->next); // 先处理下一个节点,保证栈顺序
printf("%d", head->data); // 最后输出当前节点的数据
}
```
要分别得到正序和逆序的结果,你可以先分别调用这两个函数:
```c
int main() {
Node* list = createLinkedList(); // 创建你的链表
printf("正序输出:");
printListForward(list);
printf("\n逆序输出:");
printListReverse(list);
return 0;
}
```
其中`createLinkedList()`是创建链表的函数,你需要自行实现。
阅读全文