本文主要提供了不带表头结点的单链表的基本操作,主要包括:插入、删除和查找操作
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
int sll_insert(struct node **head, int new_value); /*向链表中插入一个结点*/
int sll_delete(struct node **head, int value); /*删除链表中的一个结点*/
int sll_member(struct node **head, int value); /*查找value是否为链表中某个结点的值*/
void sll_print(struct node *head_node); /*打印链表元素*/
int main(int argc, char **argv)
{
struct node **head;
struct node *head_node = NULL;
int i;
head = &head_node;
srand(100);
for(i=0; i<10; i++)
sll_insert(head, rand()%100);
sll_print(head_node);
printf("0? %d\n", sll_member(head,0));
printf("1? %d\n", sll_member(head,1));
printf("70? %d\n", sll_member(head,70));
printf("69? %d\n", sll_member(head,69));
printf("84? %d\n", sll_member(head,84));
printf("85? %d\n", sll_member(head,85));
sll_de