数据结构链表常用函数
作者:
Matthew_77
,
2024-04-19 12:12:07
,
所有人可见
,
阅读 20
链表常用函数
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int val;
struct Node *next;
} node, *linklist;
/*
思考: 这里为什么要加引用符号,不加可以吗?
为什么去掉引用符号,会报 segmentation fault?
*/
int init_list(linklist &l) {
l = (node*) malloc(sizeof(node));
l->next = NULL;
return 0;
}
node* create_node(int val) {
node* n = (node*) malloc(sizeof(node));
n->val = val;
n->next = NULL;
return n;
}
int create_list(linklist l, int* trump, int size) {
int idx = 0;
linklist p = l;
while(idx < size) {
p->next = create_node(trump[idx ++]);
p = p->next;
}
return 0;
}
int print_list(linklist l) {
linklist p = l;
while(p->next != NULL) {
p = p->next;
printf("%d ", p->val);
}
return 0;
}
int main() {
int vals[] = {1, 3, 5, 6, 7};
linklist list;
init_list(list);
create_list(list, vals, 5);
print_list(list);
return 0;
}