10.27数据结构

2020-10-29 59

#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;
LinkList Create_List(LinkList &L)
{
L = (LinkList) malloc(sizeof(LNode));
L->next = NULL;
return L;
}
void Inser(LinkList &L, int e)
{
LNode *s;
s = (LNode *)malloc(sizeof(LNode));
s->data = e;
s->next = L->next;
L->next = s;
}
LNode *GetElem(LinkList &L, int i)
{
int j = 1; // 计数
LNode *p = L->next;
if(i == 0)
return L;
if(i < 1)
return NULL; // 没有这个结点
while(p && i > j)
{
p = p->next;
j++;
}
return p;
}
LNode *Find(LinkList &L, int e)
{
LNode *p = L->next;
while(p != NULL && p->data != e)
p = p->next;
return p;
}
void Delete(LinkList &L, int i)
{
LNode *q, *p;
p = GetElem(L, i-1);
q = p->next;
p->next = q->next;
free(q);
}
int main()
{
LinkList L;
L = Create_List(L);
Inser(L, 5);
Inser(L, 6);
Inser(L, 16);
LNode *s = GetElem(L, 2);
printf("%d\n", s->data);
Delete(L, 1);
s = GetElem(L, 1);
printf("%d\n", s->data);
LNode *s1 = Find(L, 5);
printf("%d\n", s1->data);
return 0;
}
1 0