#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node* next;
}Node;//创建链表框架
Node* InitList()
{
Node* list = (Node*)malloc(sizeof(Node));
list->data = 0;
list->next = NULL;
return list;
}
void HeadInsert(Node* list,int data)//=头插
{
Node* node = (Node*)malloc(sizeof(Node));
node->data = data;
node->next = list->next;
list->next = node;
list->data++;
}
void TailInsert(Node* list/*头节点*/,int data)//尾插
{
Node* head = list;
Node* node = (Node*)malloc(sizeof(Node));
node->data = data;
node->next = NULL;
list = list->next;//使list指向链表中的第一个元素
while (list->next)
{
list = list->next;
}
list->next = node;
head->data++;
}
void Delate(Node* list, int data)//删除
{
Node* pre = list;
Node* current = list->next;
while (current)
{
if (current->data == data)
{
pre->next = current->next;
free(current);
list->data--;
break;
}
pre = current;
current = current->next;
}
}
void printlist(Node *list)
{
list = list->next;
while (list)
{
printf("%d ", list->data);
list = list->next;
}
printf("\n");
}
int main()
{
Node* list1 = InitList();
HeadInsert(list1, 1);
HeadInsert(list1, 2);
HeadInsert(list1, 3);
HeadInsert(list1, 4);
HeadInsert(list1, 5);
TailInsert(list1, 6);
TailInsert(list1, 7);
TailInsert(list1, 8);
TailInsert(list1, 9);
TailInsert(list1, 10);
Delate(list1, 8);
printlist(list1);
printf("链表个数: %d ", list1->data);
return 0;
}
C语言数据结构学习---链表基础
最新推荐文章于 2024-09-03 21:34:10 发布