2024年5月13日发(作者:)
c语言链表头插法
链表是一种重要的数据结构,在c语言中可以通过指针来实现链
表。其中一个常用的插入方法就是链表的头插法。
链表的头插法就是在链表的头部插入一个新节点,使其成为链表
的第一个节点。这个操作可以通过以下步骤来实现:
1. 定义一个新节点,申请空间,设置节点的数据域和指针域;
2. 将新节点的指针域指向当前链表的头节点;
3. 将新节点设置为当前链表的头节点。
C语言链表头插法的示例代码如下:
```
#include
#include
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;
return newNode;
}
- 1 -
void insertHead(Node **head, int data) {
Node *newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
} else {
newNode->next = *head;
*head = newNode;
}
}
void printList(Node *head) {
while (head != NULL) {
printf('%d ', head->data);
head = head->next;
}
printf('
');
}
int main() {
Node *head = NULL;
insertHead(&head, 3);
insertHead(&head, 2);
insertHead(&head, 1);
- 2 -
printList(head);
return 0;
}
```
在这个示例代码中,我们定义了一个名为Node的结构体,它有
两个成员:int类型的数据域和指向下一个节点的指针域。我们还定
义了一个createNode()函数来创建新的节点,并把数据域和指针域
设置成指定的值。insertHead()函数则是用来在链表头部插入新节点
的函数。它首先创建一个新节点,然后检查当前链表是否为空。如果
链表为空,则把新节点作为链表的头节点;如果链表不为空,则把新
节点的指针域指向当前的头节点,然后将新节点设置为当前链表的头
节点。最后,我们使用printList()函数来打印链表中所有节点的数
据。在main()函数中,我们创建了一个空链表,然后使用insertHead()
函数在链表头部插入了三个节点,最后使用printList()函数来打印
链表的内容。
链表头插法是一种常用的插入方法,它可以使插入操作的时间复
杂度保持在O(1)级别,而不会随着链表长度的增加而增加。因此,
在实际应用中,它也是一种很方便的操作方式。
- 3 -
发布者:admin,转转请注明出处:http://www.yc00.com/news/1715601290a2643163.html
评论列表(0条)