#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<math.h>
typedef struct LNode
{
char address[5];
int key;
char next[5];
}LNode;
int main()
{
char ch[5];
int n;
int i,j;
LNode list_i[100];
LNode list_o[100];
scanf("%s %d", ch, &n);
for (i = 0; i < n; i++)
{
scanf("%s", list_i[i].address);
scanf("%d", &list_i[i].key);
scanf("%s", list_i[i].next);
}
for (i = 0; i < n; i++)/
{
if (strcmp(ch, list_i[i].address) == 0)
{
LNode t = list_i[0];
list_i[0] = list_i[i];
list_i[i] = t;
}
}
for (i = 0; i < n-1; i++)
{
for (j = i+1; j < n; j++)
{
if (strcmp(list_i[i].next, list_i[j].address) == 0)
{
LNode t = list_i[i + 1];
list_i[i + 1] = list_i[j];
list_i[j] = t;
}
}
}
list_o[0] = list_i[0];
int m = 0;
int flag = 1;
for (i = 0; i < n; i++)
{
for (j = 0; j < m+1; j++)
{
if (abs(list_i[i].key) == abs(list_o[j].key))
{
flag = 0;
break;
}
}
if (flag)
{
list_o[m + 1] = list_i[i];
m++;
}
flag = 1;
}
for (i = 0; i < m+1; i++)
{
if (i == m)
{
strcpy(list_o[i].next, "-1");
break;
}
strcpy(list_o[i].next, list_o[i + 1].address);
}
printf("%d\n", m+1);
for (i = 0; i < m+1; i++)
{
printf("%s %d %s\n", list_o[i].address,list_o[i].key,list_o[i].next);
}
return 0;
}
xdoj链表去重
于 2023-10-29 01:07:05 首次发布