2014-10-13 2 views
-1

정렬되지 않은 링크 된 목록의 경우 특정 데이터 조각의 발생 횟수를 계산하는 알고리즘은 무엇입니까?링크 된 목록에서 어커런스를 계산하는 알고리즘

+2

연결된 목록은 원시 파이썬 데이터 유형이 아니므로 직접 구현해야합니다. 즉, 어떻게 작성했는지 확인해야합니다. 또한 문제를 해결하기 위해 시도한 것을 더하십시오. –

+1

"brute-force search"라고도하며 "루프"라고도합니다 :-) – Bergi

+0

@Bergi. 유효한 질문입니다. (아래에서 볼 수 있습니다) 유효한 질문입니다. '클래스 노드 : 데프 __init __ (자기, initdata) : self.data = 자기 initdata 내 강의에서 우리가 단지에 대해 알게했기 때문에 – GreenAsJade

답변

0

알고리즘 (의사 코드) :

node = list.head 
count = 0 
while node: # while we have a valid node 
    if node.data == target_data: 
     count++ 
    node = node.next # assume this returns a "false" value if there is no next node 
0

나는 카운트 요소에서 해시 맵 매핑을 사용하여 할 것입니다. 의사, 그것은 다음과 같을 수 있습니다 : 그 후

map = new HashMap() 

for (item : list) { 
    if map.has_key(item) 
    ++map[item] 
    else 
    map[item] = 0 
} 

를, 각 항목에 대해,지도 [항목] 항목의 발생 횟수가 포함되어 있습니다.

만 특정 항목을 계산하려면

, 당신은이

count = 0 
for (item : list) { 
    if (item == counted_item) { 
    ++count 
    } 
} 

처럼 할 수도 있었다 다음 수는 counted_item의 currences의 수를 포함합니다.

+0

이 솔루션은 목록 유형에 중개자가 있다고 가정합니다. "원시"연결된 목록에는없는 것입니다. IE의 대답은 질문의 "연결된 목록"측면을 다루지 않습니다. – GreenAsJade

관련 문제