#include<stdio.h>
#include<stdlib.h>
typedef int Item;
typedef struct node
{
Item data;
struct node *next;
}Node;
Node *first = NULL;
static void terminate(const char *message)
{
printf("%s\n", message);
exit(EXIT_FAILURE);
}
Node *find_data(int number) {
Node *p;
for (p = first;
p != NULL && number > p->data;
p = p->next);
if (p != NULL && number == p->data)
return p;
return NULL;
}
void insert(void)
{
Node *cur, *prev, *new_node;
new_node = (Node *)malloc(sizeof(Node));
if (new_node == NULL){
terminate("Database is full;can't add more node.\n");
return;
}
printf("Enter a data: ");
scanf_s("%d", &new_node->data);
for (cur = first, prev = NULL;
cur != NULL && new_node->data > cur->data;
prev = cur, cur = cur->next);
if (cur != NULL && new_node->data == cur->data) {
printf("data is already exists.\n");
free(new_node);
return;
}
new_node->next = cur;
if (prev == NULL)
first = new_node;
else
{
prev->next = new_node;
}
}
void search(void)
{
int number;
Node *p;
printf("Enter a data:");
scanf("%d", &number);
p = find_data(number);
if (p != NULL) {
printf("find data!");
}
else
printf("data not find!");
}
void print_list()
{
Node *p;
for (p = first; p != NULL; p = p->next) {
printf(" %d ", p->data);
}
}
C/C++ 顺序链表
最新推荐文章于 2023-08-14 12:27:11 发布