C语言蒟蒻求助,过了前两个点,后面Re了QAQ
  • 板块P1160 队列安排
  • 楼主yeying
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/3/3 11:29
  • 上次更新2023/11/5 02:30:39
查看原帖
C语言蒟蒻求助,过了前两个点,后面Re了QAQ
471078
yeying楼主2021/3/3 11:29
#include<stdio.h>
#include<stdlib.h>
typedef struct person{
	int num;
	struct person*next;
	struct person*last;
}per;
int main()
{
	int m, n, i, j, k, c, y, x;
	per *head, *tail, *cur, *tmp;
	head = (per*)malloc(sizeof(per));
	head->last = NULL;
	cur = head;
	cur->num = 1;
	tail = NULL;
	cur->next = tail;
	scanf("%d", &m);
	for (i = 0; i < m-1; i++){
		scanf("%d%d", &y, &x);
		cur = head;
		if (x == 0){
			for (j = 0; j <= i; j++){
				if (cur->num == y){
					if (cur->last == NULL) {
						cur->last = (per*)malloc(sizeof(per));
						cur->last->last = NULL;
						cur->last->num = i + 2;
						head = cur->last;
						head->next = cur;
					}
					else {
						tmp = cur->last;
						cur->last = (per*)malloc(sizeof(per));
						cur->last->num = i + 2;
						tmp->next = cur->last;
						cur->last->last = tmp;
						cur->last->next = cur;
					}
					break;
				}
				cur = cur->next;
			}
		}
		else if (x == 1){
			for (j = 0; j <= i; j++){
				if (cur->num == y){
					if (cur->next == NULL) {
						cur->next = (per*)malloc(sizeof(per));
						cur->next->num = i + 2;
						cur->next->next = NULL;
						tail = cur->next->next;
					}
					else{
						tmp = cur->next;
						cur -> next = (per*)malloc(sizeof(per));
						cur->next->num = i + 2;
						tmp->last = cur->next;
						cur->next->next = tmp;
						cur->next->last = cur;
					}
					break;
				}
				cur = cur->next;
			}
		}
	}
	scanf("%d", &n);
	for (j = 0; j < n; j++){
		scanf("%d", &c);
		cur = head;
		while (cur != tail){
			if (cur->num == c){
				cur->num = 0;
				break;
			}
			cur = cur->next;
		}
	}
	cur = head;
	while (cur != tail){
		if (cur->num != 0){
			printf("%d ", cur->num);
		}
		cur = cur->next;
	}
	return 0;
}
2021/3/3 11:29
加载中...