c语言如何输出带头节点单链表
时间: 2023-04-10 10:01:19 浏览: 108
你可以使用以下代码来输出带头节点单链表:
```
void printList(Node* head) {
Node* curr = head->next;
while (curr != NULL) {
printf("%d ", curr->data);
curr = curr->next;
}
printf("\n");
}
```
其中,Node 是链表节点的结构体,包含一个数据域和一个指向下一个节点的指针域。head 是指向链表头节点的指针,head->next 指向链表的第一个节点。在循环中,我们遍历链表并输出每个节点的数据。最后,我们在末尾输出一个换行符,以便下一次输出不会与本次输出混在一起。
相关问题
用c语言创建带头节点单链表List L2并放入三个元素
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node *next;
}Node;
typedef struct{
Node *head;
int length;
}List;
void initList(List *L){
L->head = (Node*)malloc(sizeof(Node));
L->head->next = NULL;
L->length = 0;
}
void insert(List *L, int index, int data){
if(index < 0 || index > L->length){
printf("插入位置不合法\n");
return;
}
Node *p = L->head;
for(int i = 0; i < index; i++){
p = p->next;
}
Node *newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = p->next;
p->next = newNode;
L->length++;
}
void printList(List *L){
Node *p = L->head->next;
while(p){
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main(){
List L2;
initList(&L2);
insert(&L2, 0, 1);
insert(&L2, 1, 2);
insert(&L2, 2, 3);
printList(&L2);
return 0;
}
c语言中实现带头节点单链表的逆置的代码是什么样的
以下是实现带头节点单链表逆置的 C 代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node* createList(int n) {
Node *head = (Node*)malloc(sizeof(Node));
head->next = NULL;
Node *tail = head;
for (int i = ; i < n; i++) {
Node *node = (Node*)malloc(sizeof(Node));
scanf("%d", &node->data);
node->next = NULL;
tail->next = node;
tail = node;
}
return head;
}
void printList(Node *head) {
Node *p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
void reverseList(Node *head) {
Node *p = head->next;
Node *q = NULL;
head->next = NULL;
while (p != NULL) {
q = p->next;
p->next = head->next;
head->next = p;
p = q;
}
}
int main() {
int n;
scanf("%d", &n);
Node *head = createList(n);
printList(head);
reverseList(head);
printList(head);
return ;
}
```
以上代码实现了带头节点单链表的逆置,具体实现方法是通过遍历链表,将每个节点的 next 指针指向其前驱节点,最后将头节点的 next 指针指向原链表的尾节点。
阅读全文