链表的基本操作
链表的基本操作包括创建、销毁、插入、删除、查找、打印。这里附上代码:
list.h
typedef struct Node { int data; Node *next; } PNode; typedef struct List{ Node head; Node *last; } List; void list_init(List *list); void list_destroy(List *list); void list_insert(List *list,int data); void list_erase(List *list,int data); Node * list_find(List *list,int data); void list_print(List *list); int get_list_max(List *list); int get_list_count(List *list); int get_list_min(List *list);
list.c
#include "list.h"; #include <stdio.h>; #include<stdlib.h>; void list_init(List *list){ Node node; node.data=0; node.next=NULL; list->head=node; list->last=&list->head; } void list_insert(List *list,int data){ Node *node = (Node*)malloc(sizeof(Node)); node->data=data; node->next=NULL; list->last->next=node; list->last=node; } void list_print(List *list){ Node * cur =list->head.next; printf("head"); while(cur!=NULL){ printf("->[%d]",cur->data); cur=cur->next; } printf("\n"); } void list_print(Node *p){ while(p!=NULL){ printf("->[%d]",p->data); p=p->next; } } void list_erase(List *list, int data){ Node * pre = &list->head; Node * cur =list->head.next; while(cur!=NULL){ if(cur->data==data){ Node *del = cur; pre->next=cur->next; free(del); cur=pre->next; }else{ pre=cur; cur=cur->next; } } } Node * list_find(List *list,int data){ Node *cur = list->head.next; while(cur){ if(cur->data==data){ return cur; } cur=cur->next; } return NULL; } int get_list_max(List *list){ Node *cur = list->head.next; int max=0; while(cur){ if(cur->data>=max){ max=cur->data; } cur=cur->next; } return max; } int get_list_min(List *list){ Node *cur = list->head.next; int min; if(cur) min=cur->data; while(cur){ if(cur->data<=min){ min=cur->data; } cur=cur->next; } return min; } int get_list_count(List *list){ Node *cur = list->head.next; int count=0; while(cur){ count+=cur->data; cur=cur->next; } return count; } void list_destroy(List *list){ Node * cur = list->head.next; while(cur){ Node * del= cur; cur=cur->next; free(del); } list_init(list); }
Enter text in Markdown. Use the toolbar above, or click the ? button for formatting help.
来源:https://www.cnblogs.com/CommonQ/p/4062430.html