最后三个TEL怎么弄啊
查看原帖
最后三个TEL怎么弄啊
1124711
wyt15109956608楼主2024/4/26 21:51
#include<stdio.h>
#include<stdlib.h>

typedef struct node {
	long data;
	struct node* N;
	struct node* P;
}node,*pnode;
void insertleft(pnode* Q,long i, long k,long tag)
{
	pnode p = (*Q)->N, q;
	q = new node;
	q->data = i;
	while (p->data!=k)
		p = p->N;
	if (tag == 0)
	{
		p->P->N = q;
		q->P = p->P;
		p->P = q;
		q->N = p;
	}
	else
	{
		p->N->P = q;
		q->N = p->N;
		p->N = q;
		q->P = p;
	}
}
void deletedata(pnode* Q, long k)
{
	pnode p = (*Q);
	while (p->N!=(*Q))
	{
		p = p->N;
		if (p->data == k)
		{
			p->P->N = p->N;
			p->N->P = p->P;
			delete(p);
			break;
		}
	}
}
int main()
{
	long m, i, k, p, n;
	pnode Q;
	Q = new node;
	Q->N = new node;
	Q->N->N = Q;
	Q->N->P = Q;
	Q->P = Q->N;
	Q->N->data = 1;
	scanf("%ld", &m);
	for (i = 2; i <= m; i++)
	{
		scanf("%ld%ld", &k, &p);
		insertleft(&Q, i, k, p);
	}
	scanf("%ld", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%ld", &k);
		deletedata(&Q, k);
	}
	pnode h = Q;
	while (h->N != Q)
	{
		h = h->N;
		printf("%ld ", h->data);
	}
}
2024/4/26 21:51
加载中...