最近在重新学数据结构,所以把每次写完的代码记录一些!
#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
/*
构造节点
*/
typedef struct Node {
int data;
Node *next;
}node;
/*
初始化链表
n 初始化的长度
*/
node * init_head(int n) {
if (n <= 0)
{
printf("请确认输入的长度!\n");
return ERROR;
}
node *head = (node *)malloc(sizeof(node));//初始化一个头节点
if (!head) {
printf("初始化失败!");
exit(0);
}
node *temp=head;//创造一个遍历指针,该指针用于指向最后一个节点
for (int i = 0; i < n; i++) {
printf("请输入元素:");
node *a = (node *)malloc(sizeof(node));
if (!a) {
printf("初始化失败!");
exit(0);
}
scanf("%d", &a->data);
a->next = NULL;//下一个元素为空
temp->next = a;//把上一个节点的下一个指针指向a
temp = temp->next;//把遍历指针下移一个
}
return head;//返回头节点
}
/*
遍历链表
p 头节点的指针
*/
void select_all(node *p) {
if (p->next == NULL) { printf("该链表没有元素&