汉扬编程 编程大纲 C语言单链表基础知识-插入节点的简单方法

C语言单链表基础知识-插入节点的简单方法

链表是由节点组成的,节点中包含:数据域和指针域

C语言单链表基础知识-插入节点的简单方法

头指针(★):头指针的类型是struct Node *类型,指向链表的第一个节点。

链表中存储节点的内存地址是随机,我们只能依靠头指针 head->next…..->next来一个一个找到节点和遍历节点。

示例:①创建一个没有头节点的链表,用头部插入的方式插入一个节点

②用户输入链表的数据,并可以打印出链表的数据

头指针head定义成全局变量,在程序中任何地方都能访问 typedef struct node{ int data; struct node *pNext; }Node;Node * head;//全局变量,存储在数据段用函数创建一个节点:

Node * Create_Node(int value){ Node *temp = (Node*)malloc(sizeof(Node));//申请堆内存 if(NULL == temp){ printf("malloc error!\\n");//检验堆内存是否分配成功 return NULL; } memset(temp,'\\0',sizeof(Node));//堆内存初始化 temp->data = value; temp->pNext = NULL; return temp;}用头部插入的方式插入一个节点

1.链表为空时

Node* temp  =  Create_Node(int value);temp->data = value;temp->next = NULL;head = temp;2.链表不为空

temp->data = value; temp ->next = head; head = temp;

由于最开始全局变量head=NULL,第二种情况可以包含第一种状况。

插入节点的函数

void Insert_Beginning(int value){ Node* temp = Create_Node(value); temp->data = value; temp->pNext = head; head =temp;}打印出列表中的数据

void PrintList(){ Node *temp = head; printf("—–链表数据—–\\n"); while(NULL != temp) { printf("%d ",temp->data); temp = temp->pNext; } printf("\\n"); }main函数

int main(){ int n,x,i; printf("请输入链表共有多少条数据: \\n"); scanf("%d",&n); for(i = 0 ;i<n;i++) { printf("请输入节点的数据: \\n"); scanf("%d",&x); Insert_Beginning(x); PrintList(); } return 0;}

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6590.html

「C语言更新」C语言中如何来定义一个指针,并且对其进行初始化

最难的 5 种编程语言!C/C++竟不在其列,它们到底是谁?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部