慕神4583458 的學(xué)生作業(yè):
linklist.c
#include "linklist.h"
linknode_t *create_empty_linklist() {
linknode_t *head = NULL;
head = (linknode_t *)malloc(sizeof(linknode_t));
if (head == NULL) {
printf("malloc hlinklist error\n");
return NULL;
}
return head;
}
void insert_head_linklist(linknode_t *head, datatype_t data) {
if (head == NULL) return;
linknode_t *temp = NULL;
temp = (linknode_t *)malloc(sizeof(linknode_t));
if (temp == NULL) {
printf("malloc data error\n");
return;
}
temp->data = data;
temp->next = head->next;
head->next = temp;
}
void insert_tail_linklist(linknode_t *head, datatype_t data) {
if (head == NULL) return;
linknode_t *temp = NULL, *p = head;
temp = (linknode_t *)malloc(sizeof(linknode_t));
if (temp == NULL) {
printf("malloc data error\n");
return;
}
temp->data = data;
while(p->next != NULL) {
p = p->next;
}
p->next = temp;
temp->next = NULL;
}
void insert_order_linklist(linknode_t *head, datatype_t data) {
if (head == NULL) return;
linknode_t *temp = NULL, *p = head;
temp = (linknode_t *)malloc(sizeof(linknode_t));
if (temp == NULL) {
printf("malloc data error\n");
return;
}
temp->data = data;
while(p->next != NULL && p->next->data < data) {
p = p->next;
}
temp->next = p->next;
p->next = temp;
}
void print_linklist(linknode_t *head) {
linknode_t *p = head;
while(p->next) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int is_empty_linklist(linknode_t *head) {
return head->next == NULL ? 1 : 0;
}
int delete_data_linklist(linknode_t *head, datatype_t data) {
int flag = 0;
linknode_t *p = head, *q;
while(p->next) {
if (p->next->data == data) {
flag = 1;
q = p->next;
p->next = q->next;
free(q);
q = NULL;
} else {
p = p->next;
}
}
return flag;
}
#include "linklist.h"
void main() {
linknode_t *linklist = create_empty_linklist();
datatype_t arr[] = {1,5,3,7,9,5,8,3};
int i;
int size = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < size; i++) {
insert_order_linklist(linklist, arr[i]);
}
print_linklist(linklist);
int ret;
ret = delete_data_linklist(linklist, 3);
if (ret) {
printf("delete success\n");
}
print_linklist(linklist);
}
【圖片】