用c语言构建二叉链表并且遍历
时间: 2024-11-09 12:17:24 浏览: 27
在 C 语言中,我们可以使用结构体定义二叉链表节点,并通过指针连接它们。首先,我们需要创建一个包含数据域和指向左右子节点指针的节点结构:
```c
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
```
接下来,我们构建二叉链表的基本操作包括:
1. **创建新节点**:
```c
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->left = newNode->right = NULL; // 初始化左右指针为NULL
return newNode;
}
```
2. **插入节点**:
- 可以分为左插入和右插入:
```c
void insertLeft(Node** root, int value) {
Node* newNode = createNode(value);
if (*root == NULL) {
*root = newNode;
} else {
newNode->left = *root;
*root = newNode;
}
}
void insertRight(Node** root, int value) {
Node* newNode = createNode(value);
if (*root == NULL) {
*root = newNode;
} else {
newNode->right = *root;
while ((*root)->right != NULL) {
root = &(*root)->right;
}
(*root)->right = newNode;
}
}
```
3. **遍历二叉链表**:
-右):
```c
void inorderTraversal(Node* root) {
if (root != NULL) {
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
}
```
- 中序遍历(左-根-右)、后序遍历等可以根据需求选择相应的方式。
阅读全文