list.h
//
// Created by gxf on 2020/3/8.
//
#ifndef UNTITLED_LINKLIST_H
#define UNTITLED_LINKLIST_H
typedef struct ListNodeS {
int data;
struct ListNodeS *next;
} ListNode;
ListNode* initList();
void addList(ListNode *head, int data);
void printAllNode(ListNode *head);
ListNode* createNode(int data);
void travelList(ListNode *head);
ListNode* createList(int *array, int size);
#endif //UNTITLED_LINKLIST_H
list.c
//
// Created by gxf on 2020/3/8.
//
#include "linklist.h"
#include <stdlib.h>
#include <stdio.h>
ListNode *initList() {
ListNode *head = malloc(sizeof(ListNode));
head->data = 0;
head->next = NULL;
return head;
}
ListNode* createNode(int data) {
ListNode *node = malloc(sizeof(ListNode));
node->data = data;
node->next = NULL;
return node;
}
void addList(ListNode *head, int data) {
ListNode *tmp = createNode(data);
while (head->next) {
head = head->next;
}
head->next = tmp;
}
void travelList(ListNode *head) {
ListNode *curPoint = head->next;
while (curPoint) {
printf("%d ", curPoint->data);
curPoint = curPoint->next;
}
printf("\n");
}
ListNode *createList(int *dataArray, int size) {
ListNode *head = createNode(0);
ListNode *tmpHead = head;
for (int i = 0; i < size; i++) {
ListNode *tmpNode = createNode(dataArray[i]);
tmpHead->next = tmpNode;
tmpHead = tmpHead->next;
}
return head;
}
main.c
//
// Created by gxf on 2020/3/8.
//
#include "linklist.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
void printHello();
int main() {
int array[5] = {1, 2, 3, 4, 5};
ListNode *head = createList(array, sizeof(array) / sizeof(int));
travelList(head);
ListNode *head1 = initList();
addList(head1, 1);
addList(head1, 2);
addList(head1, 3);
travelList(head1);
return 0;
}
原文:https://www.cnblogs.com/luckygxf/p/12441592.html