试题 历届试题 发现环

资源限制

时间限制:1.0s 内存限制:256.0MB

问题描述

小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。

不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。

为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?

输入格式

第一行包含一个整数N。
  以下N行每行两个整数a和b,表示a和b之间有一条数据链接相连。

对于30%的数据,1 <= N <= 1000
  对于100%的数据, 1 <= N <= 100000, 1 <= a, b <= N

输入保证合法。

输出格式

按从小到大的顺序输出在环路上的电脑的编号,中间由一个空格分隔。

样例输入

5
1 2
3 1
2 4
2 5
5 3

样例输出

1 2 3 5

#include <bits/stdc++.h>
using namespace std; 
vector<int>v[100001];
void f(int i,vector<int>v1)
{
	//if(v1.size()>=2&&v1[v1.size()-2]==i)return;
	v1.push_back(i);
	if(v1.size()>2&&v1[v1.size()-1]==v1[v1.size()-3])return; 
	vector<int>::iterator t;int ff=0;
	if(v1.size()>2)
	{
		for(vector<int>::iterator it=v1.begin();it!=--v1.end();it++)
		{
			if(*it==i)
			{
				t=it;ff=1;
			} 
		} 
	}
	if(ff==1)
	{
		//set<int>s;
		sort(t,--v1.end());
		for(vector<int>::iterator it=t;it!=--v1.end();it++)
		{
			if(it!=v1.begin())cout<<" ";
			cout<<*it;
		}
		exit(0);
	}
	
	if(!v[i].empty())
	for(vector<int>::iterator it=v[i].begin();it!=v[i].end();it++)
	{
		//v[i].erase(it);
		f(*it,v1);
	}
}
int main()
{
	
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a,b;
		cin>>a>>b;
		v[a].push_back(b);
		v[b].push_back(a);
	}
	for(int i=1;i<=n;i++)
	{
		vector<int>v1;
		f(i,v1);
	}
}
#include <bits/stdc++.h>
using namespace std;
vector<int>v[100001];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int a,b;
		cin>>a>>b;
		v[a].push_back(b);
		v[b].push_back(a);
	}
	while(true)						//找到只有一条线连接的结点 
	{
		int f=0;						//是否找到只有一条线连接的结点 
		for(int i=1;i<=n;i++)
		{
			if(v[i].size()==1)			//是否只有一条线连接  
			{
				vector<int>::iterator it=find(v[v[i][0]].begin(),v[v[i][0]].end(),i);//例如 1  2 ,还需要找到 2  1 删除 
				v[v[i][0]].erase(it);	//删除 2  1 
				v[i].clear();		//删除 1  2 
				f=1;					//找到只有一条线连接的结点  
			}
		}
		if(f==0) break; 
	}
	int ff=0;
	for(int i=1;i<=n;i++)
	{
		if(v[i].size()==2)
		{
			if(ff!=0) cout<<" ";
			cout<<i;
			ff=1;
		}
	}
}
// FindLoop.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"

#include<bits/stdc++.h>
#define IN_STATE     (true)		// 指示连接在网格内,未删除
#define OUT_STATE    (false)		// 指示连接已删除

struct LinkNode
{
	int iLinkNo;		// 连接号,用于索引数组pLinkState
	int iTheOther;		// 当前链表跟某台电脑(编号:A)对应,则第iLinkNo号连接为(A,iTheOther)或者(iTheOther,A)
	LinkNode *pNextLink;	// 形成链表
};

struct PCNode
{
	int NO;		// 电脑编号
	int iConnectCnt;		// 当前电脑的连接数
	LinkNode *pLinkHead;		// 跟当前电脑连接的电脑链表
	PCNode *pPrePC;		// 前一台电脑指针,与下面的“后一台电脑指针”公共形成待查电脑双向链表
	PCNode *pNextPC;		// 后一台电脑指针
};

//int datas[] = { 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 3, 7, 4, 8, 6, 9, 5, 10, 2, 11, 9, 12, 9, 13, 13, 14, 5, 15, 13, 16, 5, 17, 14, 18, 9, 19, 7, 20, 17, 21, 10, 22, 6, 23, 8, 24, 15, 25, 14, 26, 14, 27, 8, 28, 16, 29, 16, 30, 18, 31, 8, 32, 13, 33, 3, 34, 5, 35, 31, 36, 31, 37, 34, 38, 30, 39, 29, 40, 35, 41, 41, 42, 25, 43, 34, 44, 33, 45, 40, 46, 1, 47, 28, 48, 43, 49, 38, 50, 47, 51, 39, 52, 2, 53, 18, 54, 29, 55, 33, 56, 31, 57, 32, 58, 35, 59, 3, 60, 46, 61, 41, 62, 55, 63, 18, 64, 34, 65, 28, 66, 38, 67, 54, 68, 18, 69, 35, 70, 46, 71, 11, 72, 52, 73, 64, 74, 55, 75, 27, 76, 69, 77, 47, 78, 60, 79, 36, 80, 70, 81, 17, 82, 43, 83, 37, 84, 20, 85, 23, 86, 61, 87, 29, 88, 87, 89, 71, 90, 66, 91, 25, 92, 50, 93, 29, 94, 6, 95, 60, 96, 96, 97, 26, 98, 22, 99, 83, 100, 3, 101, 35, 102, 102, 103, 32, 104, 47, 105, 23, 106, 4, 107, 64, 108, 63, 109, 9, 110, 26, 111, 3, 112, 82, 113, 36, 114, 93, 115, 74, 116, 35, 117, 1, 118, 20, 119, 17, 120, 85, 121, 29, 122, 78, 123, 86, 124, 90, 125, 50, 126, 58, 127, 96, 128, 126, 129, 62, 130, 15, 131, 25, 132, 8, 133, 21, 134, 54, 135, 132, 136, 55, 137, 80, 138, 84, 139, 76, 140, 29, 141, 113, 142, 106, 143, 30, 144, 36, 145, 105, 146, 17, 147, 99, 148, 134, 149, 48, 150, 30, 151, 42, 152, 23, 153, 105, 154, 122, 155, 30, 156, 83, 157, 92, 158, 42, 159, 104, 160, 34, 161, 113, 162, 77, 163, 80, 164, 78, 165, 141, 166, 80, 167, 139, 168, 148, 169, 130, 170, 56, 171, 88, 172, 145, 173, 68, 174, 86, 175, 115, 176, 38, 177, 28, 178, 101, 179, 171, 180, 159, 181, 107, 182, 126, 183, 144, 184, 143, 185, 62, 186, 62, 187, 183, 188, 117, 189, 80, 190, 172, 191, 59, 192, 43, 193, 108, 194, 164, 195, 144, 196, 177, 197, 170, 198, 184, 199, 114, 200, 18, 201, 165, 202, 98, 203, 69, 204, 62, 205, 130, 206, 129, 207, 74, 208, 81, 209, 175, 210, 93, 211, 139, 212, 173, 213, 147, 214, 118, 215, 79, 216, 23, 217, 150, 218, 93, 219, 101, 220, 208, 221, 130, 222, 105, 223, 85, 224, 180, 225, 131, 226, 210, 227, 12, 228, 110, 229, 163, 230, 163, 231, 226, 232, 21, 233, 33, 234, 183, 235, 69, 236, 139, 237, 225, 238, 163, 239, 208, 240, 141, 241, 125, 242, 193, 243, 242, 244, 56, 245, 149, 246, 231, 247, 13, 248, 152, 249, 133, 250, 151, 251, 74, 252, 152, 253, 10, 254, 146, 255, 76, 256, 99, 257, 195, 258, 95, 259, 208, 260, 207, 261, 106, 262, 260, 263, 153, 264, 165, 265, 151, 266, 209, 267, 90, 268, 238, 269, 64, 270, 94, 271, 193, 272, 190, 273, 262, 274, 27, 275, 125, 276, 16, 277, 91, 278, 187, 279, 206, 280, 199, 281, 207, 282, 101, 283, 277, 284, 197, 285, 61, 286, 181, 287, 97, 1, 150, 288, 236, 289, 24, 290, 278, 291, 148, 292, 107, 293, 99, 294, 66, 295, 35, 296, 214, 297, 137, 298, 61, 299, 73, 300, 141, 301, 134, 302, 198, 303, 219, 304, 15, 305, 137, 306, 297, 307, 66, 308, 272, 309, 146, 310, 84, 311, 167, 312, 253, 313, 73, 314, 249, 315, 241, 316, 227, 317, 165, 318, 166, 319, 82, 320, 123, 321, 255, 322, 144, 323, 216, 324, 78, 325, 79, 326, 47, 327, 25, 328, 289, 329, 64, 330, 220, 331, 285, 332, 230, 333, 14, 334, 138, 335, 291, 336, 288, 337, 257, 338, 66, 339, 86, 340, 58, 341, 125, 342, 267, 343, 274, 344, 251, 345, 155, 346, 345, 347, 180, 348, 254, 349, 53, 350, 56, 351, 2, 352, 271, 353, 313, 354, 213, 355, 120, 356, 282, 357, 44, 358, 164, 359, 53, 360, 342, 361, 193, 362, 267, 363, 148, 364, 227, 365, 36, 366, 68, 367, 25, 368, 102, 369, 194, 370, 65, 371, 87, 372, 348, 373, 140, 374, 313, 375, 183, 376, 135, 377, 95, 378, 108, 379, 50, 380, 162, 381, 56, 382, 280, 383, 310, 384, 135, 385, 82, 386, 268, 387, 116, 388, 268, 389, 302, 390, 157, 391, 105, 392, 280, 393, 149, 394, 386, 395, 154, 396, 342, 397, 279, 398, 208, 399, 139, 400, 253, 401, 146, 402, 207, 403, 324, 404, 276, 405, 177, 406, 326, 407, 58, 408, 355, 409, 342, 410, 127, 411, 372, 412, 107, 413, 330, 414, 62, 415, 317, 416, 129, 417, 319, 418, 199, 419, 135, 420, 298, 421, 196, 422, 130, 423, 365, 424, 19, 425, 175, 426, 130, 427, 66, 428, 121, 429, 248, 430, 195, 431, 219, 432, 409, 433, 158, 434, 157, 435, 322, 436, 33, 437, 38, 438, 20, 439, 172, 440, 172, 441, 41, 442, 162, 443, 203, 444, 429, 445, 283, 446, 53, 447, 347, 448, 31, 449, 403, 450, 97, 451, 112, 452, 289, 453, 449, 454, 403, 455, 445, 456, 323, 457, 407, 458, 399, 459, 415, 460, 286, 461, 305, 462, 255, 463, 351, 464, 47, 465, 320, 466, 451, 467, 69, 468, 411, 469, 378, 470, 231, 471, 121, 472, 219, 473, 2, 474, 299, 475, 135, 476, 324, 477, 190, 478, 290, 479, 318, 480, 99, 481, 274, 482, 16, 483, 337, 484, 457, 485, 451, 486, 358, 487, 129, 488, 224, 489, 237, 490, 343, 491, 435, 492, 259, 493, 223, 494, 198, 495, 215, 496, 193, 497, 262, 498, 286, 499, 42, 500, 61, 501, 456, 502, 85, 503, 308, 504, 346, 505, 393, 506, 246, 507, 450, 508, 336, 509, 279, 510, 67, 511, 329, 512, 76, 513, 139, 514, 492, 515, 512, 516, 162, 517, 266, 518, 117, 519, 376, 520, 501, 521, 191, 522, 346, 523, 253, 524, 390, 525, 522, 526, 337, 527, 454, 528, 172, 529, 26, 530, 357, 531, 247, 532, 5, 533, 211, 534, 480, 535, 410, 536, 474, 537, 203, 538, 80, 539, 89, 540, 357, 541, 228, 542, 111, 543, 92, 544, 149, 545, 190, 546, 137, 547, 123, 548, 185, 549, 226, 550, 102, 551, 267, 552, 404, 553, 294, 554, 456, 555, 35, 556, 257, 557, 302, 558, 94, 559, 292, 560, 364, 561, 414, 562, 548, 563, 218, 564, 422, 565, 123, 566, 178, 567, 23, 568, 388, 569, 108, 570, 558, 571, 130, 572, 115, 573, 138, 574, 520, 575, 495, 576, 72, 577, 90, 578, 5, 579, 541, 580, 496, 581, 359, 582, 487, 583, 265, 584, 492, 585, 403, 586, 308, 587, 58, 588, 113, 589, 278, 590, 82, 591, 476, 592, 521, 593, 460, 594, 185, 595, 552, 596, 559, 597, 582, 598, 91, 599, 404, 600, 450, 601, 298, 602, 74, 603, 597, 604, 346, 605, 553, 606, 525, 607, 527, 608, 471, 609, 467, 610, 570, 611, 316, 612, 204, 613, 502, 614, 158, 615, 112, 616, 437, 617, 552, 618, 134, 619, 101, 620, 427, 621, 231, 622, 589, 623, 269, 624, 431, 625, 404, 626, 480, 627, 505, 628, 322, 629, 149, 630, 143, 631, 178, 632, 329, 633, 218, 634, 113, 635, 472, 636, 122, 637, 17, 638, 318, 639, 221, 640, 592, 641, 526, 642, 168, 643, 48, 644, 573, 645, 391, 646, 21, 647, 633, 648, 7, 649, 185, 650, 571, 651, 22, 652, 533, 653, 109, 654, 646, 655, 449, 656, 294, 657, 611, 658, 494, 659, 657, 660, 2, 661, 506, 662, 338, 663, 87, 664, 610, 665, 610, 666, 296, 667, 52, 668, 518, 669, 371, 670, 498, 671, 527, 672, 233, 673, 419, 674, 435, 675, 528, 676, 235, 677, 504, 678, 8, 679, 262, 680, 482, 681, 135, 682, 113, 683, 469, 684, 433, 685, 329, 686, 141, 687, 127, 688, 422, 689, 534, 690, 68, 691, 627, 692, 418, 693, 651, 694, 554, 695, 393, 696, 179, 697, 603, 698, 409, 699, 626, 700, 516, 701, 22, 702, 677, 703, 351, 704, 556, 705, 203, 706, 190, 707, 17, 708, 703, 709, 202, 710, 477, 711, 234, 712, 153, 713, 452, 714, 672, 715, 520, 716, 513, 717, 361, 718, 567, 719, 627, 720, 215, 721, 435, 722, 168, 723, 511, 724, 536, 725, 470, 726, 335, 727, 376, 728, 53, 729, 461, 730, 137, 731, 133, 732, 431, 733, 580, 734, 666, 735, 372, 736, 144, 737, 546, 738, 249, 739, 462, 740, 107, 741, 162, 742, 655, 743, 539, 744, 414, 745, 610, 746, 238, 747, 373, 748, 179, 749, 442, 750, 512, 751, 177, 752, 9, 753, 168, 754, 632, 755, 72, 756, 119, 757, 650, 758, 37, 759, 173, 760, 177, 761, 14, 762, 207, 763, 329, 764, 615, 765, 153, 766, 237, 767, 226, 768, 148, 769, 403, 770, 541, 771, 708, 772, 608, 773, 443, 774, 687, 775, 130, 776, 176, 777, 716, 778, 461, 779, 215, 780, 577, 781, 449, 782, 759, 783, 275, 784, 184, 785, 309, 786, 594, 787, 448, 788, 683, 789, 296, 790, 36, 791, 272, 792, 629, 793, 539, 794, 335, 795, 369, 796, 452, 797, 655, 798, 347, 799, 216, 800, 606, 801, 548, 802, 8, 803, 696, 804, 250, 805, 548, 806, 731, 807, 345, 808, 787, 809, 807, 810, 314, 811, 240, 812, 121, 813, 336, 814, 790, 815, 657, 816, 260, 817, 23, 818, 561, 819, 234, 820, 803, 821, 49, 822, 538, 823, 817, 824, 210, 825, 638, 826, 578, 827, 203, 828, 42, 829, 18, 830, 540, 831, 452, 832, 144, 833, 67, 834, 444, 835, 71, 836, 194, 837, 798, 838, 809, 839, 566, 840, 291, 841, 501, 842, 411, 843, 121, 844, 417, 845, 62, 846, 700, 847, 804, 848, 673, 849, 723, 850, 484, 851, 496, 852, 489, 853, 420, 854, 517, 855, 691, 856, 405, 857, 30, 858, 19, 859, 324, 860, 421, 861, 664, 862, 829, 863, 344, 864, 804, 865, 811, 866, 233, 867, 702, 868, 6, 869, 657, 870, 633, 871, 330, 872, 104, 873, 478, 874, 191, 875, 672, 876, 91, 877, 110, 878, 441, 879, 198, 880, 876, 881, 145, 882, 653, 883, 350, 884, 808, 885, 705, 886, 79, 887, 406, 888, 148, 889, 866, 890, 708, 891, 221, 892, 845, 893, 239, 894, 412, 895, 828, 896, 796, 897, 832, 898, 829, 899, 345, 900, 375, 901, 259, 902, 297, 903, 639, 904, 57, 905, 118, 906, 54, 907, 309, 908, 217, 909, 215, 910, 685, 911, 277, 912, 819, 913, 181, 914, 518, 915, 764, 916, 895, 917, 887, 918, 400, 919, 206, 920, 64, 921, 356, 922, 391, 923, 706, 924, 642, 925, 498, 926, 786, 927, 794, 928, 690, 929, 667, 930, 734, 931, 883, 932, 621, 933, 857, 934, 873, 935, 751, 936, 200, 937, 282, 938, 188, 939, 839, 940, 144, 941, 69, 942, 349, 943, 86, 944, 671, 945, 588, 946, 209, 947, 580, 948, 476, 949, 150, 950, 776, 951, 942, 952, 762, 953, 872, 954, 640, 955, 393, 956, 800, 957, 691, 958, 576, 959, 531, 960, 433, 961, 150, 962, 258, 963, 274, 964, 108, 965, 283, 966, 629, 967, 671, 968, 32, 969, 358, 970, 763, 971, 333, 972, 181, 973, 890, 974, 217, 975, 373, 976, 180, 977, 372, 978, 15, 979, 558, 980, 406, 981, 757, 982, 827, 983, 482, 984, 672, 985, 318, 986, 698, 987, 820, 988, 699, 989, 209, 990, 530, 991, 204, 992, 696, 993, 880, 994, 944, 995, 893, 996, 513, 997, 320, 998, 235, 999, 869, 1000, };
//int datas[] = { 1, 2, 2, 5, 2, 4, 1, 3, 3, 5 };
int main()
{
	int N;
	scanf("%d", &N);
	//N = 1000;	//5;	// 
	if (N > 100000)
	{
		printf("The N (%d) is too large!\n", N);
		return 0;
	}
	// 为网格数据申请空间
	bool *pLinkState = new bool[N + 1];		// 多申请一个空的,方便编号从1开始。
	LinkNode *pLefts = new LinkNode[N + 1];		// 左链表
	LinkNode *pRights = new LinkNode[N + 1];	// 右链表
	PCNode *pPCs = new PCNode[N+1];
	PCNode *pHeadPC = NULL;
	PCNode *pTempPC = NULL, *pTempPC2 = NULL;
	// 初始化网格数据
	for (int ii = 0; ii <= N; ii++)
	{
		pLinkState[ii] = OUT_STATE;		// 初始,所有的连接都还没建立,所以都在外面。
		pLefts[ii].iLinkNo = 0;
		pLefts[ii].iTheOther = 0;
		pLefts[ii].pNextLink = NULL;		// 每个节点单独成一个链表,没有下一个
		pRights[ii].iLinkNo = 0;
		pRights[ii].iTheOther = 0;
		pRights[ii].pNextLink = NULL;		// 每个节点单独成一个链表,没有下一个
		pPCs[ii].NO = ii;		// 给每个电脑节点一个电脑编号,方便后面打印出来
		pPCs[ii].iConnectCnt = 0;		// 初始,没有连接
		pPCs[ii].pLinkHead = NULL;		// 初始,没有连接
		pPCs[ii].pPrePC = &(pPCs[ii - 1]);		// 所有电脑按编号顺序构成双向链表
		pPCs[ii].pNextPC = &(pPCs[ii + 1]);		// 所有电脑按编号顺序构成双向链表
	}
	pPCs[N].pNextPC = NULL;		// 最后一台,前面的for循环里,也同样让pNextPC指向后面一个位置(地址),但因为是最后一台,后面不应该有了,因此改成NULL
	pPCs[0].pPrePC = NULL;	// 第0台的前面也不应该有
	pHeadPC = &(pPCs[1]);	// 从第1号开始使用
	pHeadPC->pPrePC = NULL;
	// 读入数据,并填入网格
	int ileft=0, iright=0;
	for (int ii = 1; ii <= N; ii++)
	{
		scanf("%d %d", &ileft, &iright);	// 读入连接数据
		//ileft = datas[(ii - 1) * 2];
		//iright = datas[(ii - 1) * 2 + 1];
		pLinkState[ii] = IN_STATE;	// 读入的连接都应该在里面,全部读完后,才会开始删
		pLefts[ii].iLinkNo = ii;
		pLefts[ii].iTheOther = iright;	// 左链表中的每个节点的iTheOther,是右值
		pLefts[ii].pNextLink = pPCs[ileft].pLinkHead;	// 把当前连接节点加到第ileft号电脑的链表上
		pPCs[ileft].pLinkHead = &(pLefts[ii]);
		pPCs[ileft].iConnectCnt++;	// 第ileft号电脑的连接数增加1
		pRights[ii].iLinkNo = ii;
		pRights[ii].iTheOther = ileft;
		pRights[ii].pNextLink = pPCs[iright].pLinkHead;
		pPCs[iright].pLinkHead = &(pRights[ii]);
		pPCs[iright].iConnectCnt++;
	}
	// 逐个把只有一条连线的电脑排除
	bool bChange = true;	// 标识是否有删除。初始设置成有——true
	LinkNode *pTempLink = NULL;
	while (true == bChange)		// 只要有连接被删除,就会持续循环
	{
		bChange = false;	// 开始检查前,先设成没有删除
		pTempPC = pHeadPC;	// 从电脑的双向链表的头开始,遍历所有的电脑
		while (NULL != pTempPC)		// 如果还有电脑,就继续检查
		{
			if (pTempPC->iConnectCnt == 1)	// 若当前PC只有一条连线,那么删除该连线,并把当前PC排除
			{
				pTempLink = pTempPC->pLinkHead;		// 获取当前电脑的连接链表
				while (pTempLink != NULL && pLinkState[pTempLink->iLinkNo] == OUT_STATE)	// 若当前连接节点非空,但该连接节点已经排除在外,就找下一个节点
				{
					pTempLink = pTempLink->pNextLink;
				}
				if (pTempLink == NULL)	// 正常的话,应该不会得到一个空指针
				{
					printf("Error: pTempLink is NULL, while pTempPC->iConnectCnt is 1.\n");
					goto FIND_LOOP_END;
				}
				pPCs[pTempLink->iTheOther].iConnectCnt --;	// 删除一个连接,就需要把该连接的两台电脑的连接数都减1
				pLinkState[pTempLink->iLinkNo] = OUT_STATE;		// 修改连接状态,排除在外
				pTempPC->iConnectCnt--;	// 删除一个连接,就需要把该连接的两台电脑的连接数都减1
				pTempPC2 = pTempPC->pNextPC;	// 因为马上要修改pTempPC,所以预先记录下一台电脑的指针。
				// 从电脑双向链表中,去掉当前电脑。注意这里并没有是否内存,因为这些链表的信息,前面通过申请数组方式得到的,在最后释放数组即可
				if (pTempPC->pNextPC != NULL)
				{
					pTempPC->pNextPC->pPrePC = pTempPC->pPrePC;
				}
				if (pTempPC->pPrePC != NULL)
				{
					pTempPC->pPrePC->pNextPC = pTempPC->pNextPC;
				}
				else
				{
					// 当前排除的是第一台PC,链表的第一项,那么要把头指针移向下一个。
					pHeadPC = pHeadPC->pNextPC;
				}
				// 清除pTempPC的链表信息
				pTempPC->pNextPC = NULL;
				pTempPC->pPrePC = NULL;
				bChange = true;		// 标识有删除,即网格有变化
				pTempPC = pTempPC2;		// 使用前面保存的下一台电脑,作为接下来要检查的
			}
			else	// 若当前电脑连接数不是1,就检查下一台
			{
				pTempPC = pTempPC->pNextPC;
			}
		}
	}
	pTempPC = pHeadPC;	// 从电脑双向链表头开始
	while (NULL != pTempPC->pNextPC)	// 如果后面还有,就继续循环。当后面没有了,即当前的是最后一个,为了不多打印一个空格,停止循环
	{
		printf("%d ", pTempPC->NO);		// 打印链表上的电脑编号,及一个空格
		pTempPC = pTempPC->pNextPC;		// 指向下一个
	}
	printf("%d", pTempPC->NO);	// 打印最后一台,没有空格
	// 释放前面申请的空间
FIND_LOOP_END:
	delete pPCs;
	delete pLinkState;
	delete pLefts;
	delete pRights;
	return 0;
}

发布了73 篇原创文章 · 获赞 26 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/l503301397/article/details/104335810