이책에보면.. 스택 링크드 리스트를
List 노드(맨 아래 노드(맨처음에 드러간노드))를 current 로해서 루프를 돌려 top노드 까지 가게 해놨더라구요
그래서 차곡 차곡 쌓고 지우고 하던데..
근데 실제 상황에서.. 뭐 스택방식으로 자료를 존나게 미치도록 염병하도록 많이 쌓는다면.. 루프를 그만큼 쌓을때마다 돌려야되니
시간이 걸릴꺼잖아요( 이럴 경우는 드문듯하지만 그래도..)
책에는
List-> Node-> Node-> Node-> Node-> Top
이렇게 짜여져있는데
저는 그냥 이렇게 생각이 들어서 이렇게 짜봣습니다.
List <-Node <-Node <-Node <-Node <-Top
이렇게짯죠.. Push도 잘되고 Pop 도 잘됩니다.
void LLS_Push(LinkedListStack* Stack, Node* NewNode){
if(Stack->List == NULL){
Stack->List = NewNode;
}
else{
NewNode->NextNode = Stack->Top;
}
Stack->Top = NewNode;
}
Node* LLS_Pop(LinkedListStack* Stack){
Node* DeleteNode;
if(Stack->Top == NULL){
return Stack->List;
}
DeleteNode = Stack->Top;
Stack->Top = Stack->Top->NextNode;
return DeleteNode;
}
그냥 저의 개 허접한 생각에는 루프를 돌릴 필요가 없을꺼같은데 왜 루프를 돌려서 만들어놨을까요? 그냥 너무 궁금합니다. 그럴필요없는데
스택이니까.. 중간에 자료를 넣을필요도 없을꺼고.. 중간에 자료를 넣는다면 루프를 돌려야겟지만.. 그건 스택이 아니잖아요..아닌경우도잇나요..? ㅋㅋ
아니면 이런걸 궁금해하고 물어보는 제가 돌아이 인가요 병신짓인가요..ㅠ?
범용자료구는 해쉬가 진뤼, 나머진 그냥 알고 넘어 갑시다
저런 걸 보고 구현이 병신같다는거다
리스트랑 해시맵만 알면 문제없음
속결자/ hash란 자료구조는 없거든요 병진아
리스트같은거야 그냥 아무렇게나짜.
그리고 보니까 뭐 전자의 경우는 그냥 단일리스트 작성할때 루트부터 찾아가는 그런거고 너가한게 스택에 더잘어울림
이제는 어레이리스트나 벡터를 써도 무방하지 않나 싶다. 5mb이하에서 대량의 데이터 복제가 매우 저렴하기 때문에 용량이 부족할 때 마다 재할당이 일어나도 더 빠르지.
뭐라 쓰려다 보니 ㅁㄴㅇㄹ횽 말이 맞음 ㅇㅇ
top을 찻으러 매번 처음부터 루프를 돌아 아래로 끝까지 내려 간다고? 그런 병신짓하는 스택을 만들어 놓은건 이유가 있겟지 잘찻아봐. 먼가 놓친게 있을거야. 그리고 자료구조는 특정 하나가 진리 따윈 없어 다 용도가 각각 달라. 머머가 진리 이딴거 현혹 되지 말고 제대로 공부해놔. 피가되고 살이될거야.
ㄴ 내가볼때 그냥 단일리스트 올려놓은거같은데? 책이라고해서 다 믿으면 안되는데. 그리고 스택은 푸쉬팝밖에없음
Sean횽은 프갤끊었다는 소문이돌던데 진실은 저너머에..,
구현이 병신같다고여..
코드따윈 관심없음 푸쉬랑 팝써있으면 스택임
사실 난 영어를 못읽어
그래서 그 흔한 asdf를 쓰지않고 ㅁㄴㅇㄹ를 쓰고있지