代码:
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#pragma once
using namespace std;
typedef int datatype;
int pos = 1;
typedef struct node
{
/* data */
datatype data;
struct node* next;
} linklist;
linklist* createlist()
{
linklist* head;
head = (linklist*)malloc(sizeof(linklist));
head->next = NULL;
return head;
}
int posi[105] = { 0 };
/*int Size(linklist *l)
{
node *p = l->next;
int k= 0;
while(p)
{
k++;
p=p->next
}
return k;
}*/
void insert(linklist* l, int k, datatype x)
{
if (k < 1)
exit(1);
node* p = l;
int i = 0;
while (p && i < k - 1)
{
p = p->next;
i++;
}
if (!p)
exit(1);
node* s = (node*)malloc(sizeof(node));
s->data = x;
s->next = p->next;
p->next = s;
}
int size(linklist* l)
{
node* p = l->next;
int k = 0;
while (p)
{
k++;
p = p->next;
}
return k;
}
void Delete(linklist* l, int k)
{
if (k < 1)
exit(1);
node* p = l;
int i = 0;
while (p->next && i < k - 1)
{
p = p->next;
i++;
}
if (p->next == NULL)
exit(1);
node* q = p->next;
p->next = q->next;
free(q);
}
int empty(linklist* l)
{
return l->next == NULL;
}
datatype getdata(linklist* l, int k)
{
if (k < 1)
exit(1);
node* p = l;
int i = 0;
while (p && i < k)
{
p = p->next;
i++;
}
if (!p)
exit(1);
return p->data;
}
int find(linklist* l, datatype x)
{
pos = 0;
node* p = l->next;
while (p && p->data != x)
{
p = p->next;
pos++;
}
if (pos == 0)
return -10;
return pos;
//return p;
//pos = 0;
}
void printl(linklist* l)
{
node* p = l->next;
while (p)
{
printf("%d", p->data);
p = p->next;
if (p)
printf(" ");
}
}
void clearlist(linklist* l)
{
node* p, * q;
p = p->next;
while (p)
{
q = p;
p = p->next;
free(q);
}
l->next = NULL;
}
int main()
{
linklist* list = createlist();
/*insert(list, 1, 10);
insert(list, 2, 10);
insert(list, 3, 30);*/
int tim;
int ans;
int _;
cin >> tim;
for (int ios = 1; ios <= tim; ios++)
{
cin >> ans;
insert(list, ios, ans);
}
int anss;
//cin >> anss;
cin >> _;
for (int ios = 1; ios <= tim; ios++)
{
find(list, _);
if (find(list, _) != -10)
Delete(list, find(list, _));
//pos = 0;
}
/*for (int ios = 1; ios <= tim; ios++)
{
find(list, _);
posi[ios] = pos;
if(posi[ios]!=0)
Delete(list, posi[ios]);
}*/
//printf("%d",pos);
//nsert(list, anss, _);
//printl(list);
//printf(" ");
}