#define _CRT_SECURE_NO_WARNINGS 1
//链表
#include <stdio.h>
#include <stdlib.h>
#define ok 1
#define error 0
typedef struct Node
{
int data;
struct Node* next;
}Node,*LinkList;
//初始化
void InitLink(LinkList L)
{
L = (LinkList)malloc(sizeof(Node));
L->next= NULL;
}
//创建(尾插法)
void CreateLink(LinkList* L, int n)
{
LinkList p, q;
int i;
srand(time(0));//初始化随机数
*L = (LinkList)malloc(sizeof(Node));
p = *L;
for (i = 0; i < n; i++)
{
q = (LinkList)malloc(sizeof(Node));
q->data = rand() % 100 + 1;//100内随机数
p->next = q;
p = q;
}
p->next = NULL;
}
//插入
int LinkInsert(LinkList* L, int i, int e)
{
int j = 1;
LinkList p, q;
p = (*L);
while (p && j < i)
{
j++;
p = p->next;
}
if (j > i || !p)
return error;
q = (LinkList)malloc(sizeof(Node));
q->data = e;
q->next = p->next;
p->next = q;
return ok;
}
//打印
void PrintLink(LinkList* L)
{
LinkList p;
p = (*L)->next;
while (p)
{
printf("%d ", p->data);
p = p->next;
}
}
//查找
int GetLink(LinkList* L, int i, int* e)
{
int j = 1;
LinkList p;
p = (*L)->next;
while (j < i && p)
{
j++;
p = p->next;
}
if (j > i || !p)
return error;
*e = p->data;
return ok;
}
//删除
int DeleteLink(LinkList* L, int i, int* e)
{
int j = 1;
LinkList p,q;
p = *L;
while (p->next && j < i)
{
p = p->next;
j++;
}
if (!(p->next) || j > i)
return error;
q = p->next;
*e = q->data;
p->next = q->next;
free(q);
return ok;
}
int ClearList(LinkList* L)
{
LinkList p, q;
p = (*L)->next;
while (p)
{
q = p->next;
free(p);
p = q;
}
(*L)->next = NULL;
return ok;
}
int main()
{
LinkList L;
int n,i,e;
InitLink(&L);
printf("请输入链表中的个数为: ");
scanf("%d", &n);
CreateLink(&L, n);
PrintLink(&L);
printf("\n");
printf("请输入要插入的序号 数值 :");
scanf("%d %d", &i, &e);
if (LinkInsert(&L, i, e))
{
printf("插入成功!!!\n");
PrintLink(&L);
}
else printf("插入失败!!!\n");
printf("请输入要查找的序号: ");
scanf("%d", &i);
if (GetLink(&L, i, &e))
{
printf("查找的元素是: %d\n", e);
}
else printf("查找失败!!!\n");
printf("请输入要删除的序号: ");
scanf("%d", &n);
if (DeleteLink(&L, n, &e))
{
printf("删除序号%d 的 %d \n", n, e);
PrintLink(&L);
}
else printf("删除失败!!!\n");
if (ClearList(&L))
{
printf("链表删除成功!!!\n");
}
return 0;
}
数据结构--链表
最新推荐文章于 2024-10-14 21:35:38 发布