알고리즘 을 설계 하여 링크 의 중간 결산 점 을 찾다.이 알고리즘 의 시간 복잡 도 는 O (n) 이 고 공간 복잡 도 는 O (1) 입 니 다.

8957 단어
알고리즘 을 설계 하여 링크 의 중간 결산 점 을 찾다.이 알고리즘 의 시간 복잡 도 는 O (n) 이 고 공간 복잡 도 는 O (1) 입 니 다.
#include  
#include  
typedef int ElemType; 
typedef struct LNode
{  
	ElemType data;  
	struct LNode *next;  
	int Length; 
}LNode, *LinkList;
LinkList Create(); 
void print(LinkList L); 
int main() 
{  
	LinkList L = Create();  
	print(L);  
	return 0; 
} 
LinkList Create() 
{  
	LinkList L, p, s;  
	ElemType e;  
	L = (LinkList)malloc(sizeof(LNode));
	L->next = NULL;  
	p = L;  
	L->Length = 0;  
	scanf_s("%d", &e);  
	while (e != -1)  
	{   
		s = (LinkList)malloc(sizeof(LNode));   
		s->data = e;   
		p->next = s;   
		p = s;   
		scanf_s("%d", &e);
		L->Length++;  
	}  
	p->next = NULL;  
	return L; 
} 
void print(LinkList L)
{  
	LinkList p;  
	p = L->next;  
	if (L->Length % 2 == 1)  
	{   
		for (int i = 0; i < L->Length / 2; i++)
			p = p->next;   
		printf("%d", p->data);  
	}  
	if (L->Length % 2 == 0)  
	{   
		for (int i = 0; i < L->Length/ 2-1; i++)    
			p = p->next;   
		printf("%d %d", p->data,p->next->data);  
	} 
}

좋은 웹페이지 즐겨찾기