c语言怎么建立多个动态链表

   2025-03-15 8840
核心提示:要建立多个动态链表,可以使用结构体和指针来实现。首先,定义一个结构体来表示链表的节点,包含一个数据域和一个指向下一个节点

要建立多个动态链表,可以使用结构体和指针来实现。

首先,定义一个结构体来表示链表的节点,包含一个数据域和一个指向下一个节点的指针域,如下所示:

typedef struct Node {int data;            // 数据域struct Node* next;   // 指针域} Node;

然后,定义一个函数来创建一个新的节点,接受一个整数作为参数,并返回指向新节点的指针,如下所示:

Node* createNode(int data) {Node* newNode = (Node*)malloc(sizeof(Node));  // 分配内存空间newNode->data = data;                          // 设置数据newNode->next = NULL;                          // 将指针域设为NULLreturn newNode;                                // 返回指向新节点的指针}

接下来,可以定义一个函数来添加节点到链表中,这里以头插法为例,如下所示:

void insertNode(Node** head, int data) {Node* newNode = createNode(data);  // 创建一个新节点newNode->next = *head;             // 将新节点的指针域指向原头节点*head = newNode;                   // 更新头节点为新节点}

最后,可以定义一个函数来打印链表中的节点,如下所示:

void printList(Node* head) {Node* current = head;  // 从头节点开始遍历链表while (current != NULL) {printf("%d ", current->data);  // 打印当前节点的数据current = current->next;       // 将指针移动到下一个节点}printf("\n");}

使用上述函数,可以建立多个动态链表,示例代码如下:

int main() {Node* list1 = NULL;Node* list2 = NULL;insertNode(&list1, 1);insertNode(&list1, 2);insertNode(&list1, 3);insertNode(&list2, 4);insertNode(&list2, 5);insertNode(&list2, 6);printf("List 1: ");printList(list1);printf("List 2: ");printList(list2);return 0;}

输出结果为:

List 1: 3 2 1List 2: 6 5 4

这样就建立了两个动态链表list1和list2,并分别添加了若干节点。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言