링크 의 중간 점 을 찾다.
5408 단어 체인 테이블
//
/*
L, 。
:
1、 , 。 , 。 O(3n/2)
2、 : , , , NULL ,
*/
#include <iostream>
#include <string>
using namespace std;
int L_length = 0;
template<class T>
struct Node {
T value;
Node *next;
Node() {
next = NULL;
}
Node(const T &data) {
value = data;
next = NULL;
}
};
template<class T>
void PushinList(Node<T>* &L, const T &t) {
Node<T> *n = new Node<T>(t);
n->next = L->next;
L->next = n;
L_length++;
}
template<class T>
void PrintList(const Node<T>* L) {
cout << " :";
for (Node<T>* p = L->next; p != NULL; p = p->next) cout << p->value << " ";
cout << endl;
}
template<class T>
Node<string>* GetMiddle(const Node<T>* L) {
Node<string> *p_fast, *p;
p = p_fast = L->next;
while (p_fast) {
p_fast = p_fast->next;
if (p_fast) p_fast = p_fast->next;
else break;
p = p->next;
}
return p;
}
int main(void) {
Node<string>* L = new Node<string>();
string str;
cout << " ( -1 ):";
while (cin >> str && str != "-1")
PushinList(L, str);
PrintList(L);
Node<string>* p = GetMiddle(L);
cout << " " << p->value << endl;
system("pause");
return 0;
}
/*
:
a b c d e f g -1
a b c d e f -1
:
d
c
*/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
하나의 단일 체인 테이블의 순환과 귀속 실현을 반전시키다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.