#include
#include
typedef struct LNode {
int data;
struct LNode* next;
}LNode,*LinkList;
LinkList List_HeadInsert(LinkList &L)
{
L = (LNode*)malloc(sizeof(LNode));
L->next = NULL;
int n;
scanf_s("%d", &n);
for(int i=0;i<n;i++){
LNode* p= (LNode*)malloc(sizeof(LNode));
int e;
scanf_s("%d", &e);
p->data = e;
p->next = L->next;
L->next = p;
}
return L;
}
void Delete_x(LinkList& L, int x) {
LNode* p=L, * q = L->next;
while (q) {
if (q->data == x) {
p->next = q->next;
free(q);
q = p->next;
}
else {
p = q;
q = q->next;
}
}
}
LNode* GetElem(LinkList& L,int i) {
int j = 1;
LNode* p = L->next;
if (i == 0)
return L;
while (j< i && p) {
p = p->next;
j++;
}
return p;
}
LNode* LocateElem(LinkList& L,int e) {
LinkList p = L->next;
int i=0;
while (p->data != e && p) {
p = p->next;
i++;
}
return p;
}
void DeleteElem(LinkList &L,int i) {
LinkList q=GetElem(L, i-1);
q->next = q->next->next;
}
void Print(LinkList &L) {
LinkList p = L->next;
while (p) {
printf("%d ", p->data);
p = p->next;
}
}
int main() {
LinkList L;
List_HeadInsert(L);
Print(L);
printf("\n");
LNode* q=L;
Delete_x(L,3);
Print(L);
return 0;
}

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81