2014-09-13 2 views
0

내 질문에 약간의 noobish 것 같아요하지만 우리는 그냥 목록, 스택 및 대기열 연결 시작했습니다 및 구문 측면에서 조금 잃어버린 느낌.연결된 목록 C에서 스택의 구현

나는 앞과 뒤로, 푸싱, 삭제 등을 추가하여 작동하는 연결된 목록 구조를 가지고 있습니다. 그러나 스택 구현에서 해당 함수를 호출 할 때 미친 듯이 손실됩니다. Linked List 클래스 선언은 .cpp 파일의 함수 정의가있는 헤더 파일에 있습니다. 스택은 똑같은 이야기입니다. 헤더 파일에 함수 선언이 주어 졌으므로 별도의 .cpp 파일에 자체 정의를 작성해야합니다.

내 문제는 스택 함수에서 연결된 목록 함수를 호출하는 것입니다. 스택에는 "LList 데이터"(링크 된 목록 구조는 LList라고 함)가 포함됩니다. 정수 (int)에 대한 포인터 "int * data"와 스택의 최상위를 추적하는 정수 "int t"

우리가 작성해야하는 함수는 생성자, 소멸자, 팝, 푸시 및 크기입니다 기능. 나는 소스 코드를 제공 하겠지만 실제로는 전혀 작동하지 않는다.

나는 내 질문은 사전에> _ < 감사 이해 될 수 있기를 바랍니다 카메론

+0

실제로 문제가 무엇인지 설명하지 않았습니다 ... – wakjah

+0

기본적으로 주어진 스택 함수를 정의 할 때 어디서부터 시작해야할지 모르며 기존의 링크 된 목록 함수를 호출하는 방법을 모릅니다. 스택 함수 정의 파일 – user3546819

+1

이미 작동하는 연결 목록이있는 경우 뒤에서 밀고 뒤에서 튀어 나와서 스택으로 처리하면됩니다. 가지고있는 코드를 보지 않고서는 말하기 어렵습니다. – Logicrat

답변

1

스택 다른 인터페이스 기능을 가진 단지 링크 된 목록입니다. 스택의 "상단"에 대해 push 요소 만 가능하고 상단에는 pop 요소가 있어야합니다.

Stack 클래스 구현은 이미 가지고있는 LList 클래스의 래퍼로 설계된 것 같습니다.

(코드를 보지 않고 좀 하드 인) 세부 사항에 가지 않고

,

  1. 당신은 멤버 변수 (바람직 개인)와 같은 LListStack 클래스가 있습니다.
  2. push 함수는 링크 된 목록의 꼬리 부분에 삽입해야합니다.
  3. 귀하의 pop 기능은
  4. 귀하의 ~Stack 구현 만든 LList 개체를 삭제해야합니다 연결된 목록의 꼬리에서 마지막 요소를 제거해야합니다; new을 사용하여 수동으로 개체를 만든 경우 스마트 포인터를 사용하는 경우 건너 뛰거나 delete 키워드를 사용할 수 있습니다.

기타 코드는이 답변을 구체화하는 데 도움이됩니다.

+0

'~ LList'는 수동으로 호출하면 안된다고 생각합니다. 객체가 삭제되기 바로 전에 자동으로 호출됩니다. 허용하도록 설계되지 않은 경우 수동으로 d-tor을 호출하면 오류가 발생할 수 있습니다. – GingerPlusPlus