文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-08-25 05:07

关注

要建立多个动态链表,可以使用结构体和指针来实现。
首先,定义一个结构体来表示链表的节点,包含一个数据域和一个指向下一个节点的指针域,如下所示:
```c
typedef struct Node {
int data; // 数据域
struct Node* next; // 指针域
} Node;
```
然后,定义一个函数来创建一个新的节点,接受一个整数作为参数,并返回指向新节点的指针,如下所示:
```c
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存空间
newNode->data = data; // 设置数据
newNode->next = NULL; // 将指针域设为NULL
return newNode; // 返回指向新节点的指针
}
```
接下来,可以定义一个函数来添加节点到链表中,这里以头插法为例,如下所示:
```c
void insertNode(Node** head, int data) {
Node* newNode = createNode(data); // 创建一个新节点
newNode->next = *head; // 将新节点的指针域指向原头节点
*head = newNode; // 更新头节点为新节点
}
```
最后,可以定义一个函数来打印链表中的节点,如下所示:
```c
void printList(Node* head) {
Node* current = head; // 从头节点开始遍历链表
while (current != NULL) {
printf("%d ", current->data); // 打印当前节点的数据
current = current->next; // 将指针移动到下一个节点
}
printf("\n");
}
```
使用上述函数,可以建立多个动态链表,示例代码如下:
```c
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 1
List 2: 6 5 4
```
这样就建立了两个动态链表list1和list2,并分别添加了若干节点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯