linked list
을 사용하는 FIFO 프로그램입니다. 프로그램은 원하는 결과를 제공하지 않지만 언젠가 후에 멈추고 프로그램이 작동을 멈추었다는 메시지가있는 긴 루프를 생성합니다. 문제가 무엇입니까?프로그램이 원하는 출력을 제공하지 않습니다. 잘못된 FIFO 구현?
#include <iostream>
using namespace std;
struct node {
int data;
struct node* previous; // This pointer keeps track of the address of the previous node
};
struct queue {
node* first;
node* last;
};
node* dataNode_P_A;
bool loop = true;
struct node* enterData();
struct node* enter_N_Data();
void displayQueue();
int main() {
struct node* dataNode= enterData();
while(loop) {
cout << "Want to enqueue ? Press y/n : ";
char ans;
cin >> ans;
if(ans == 'y') {
struct node* dataNode_N = enter_N_Data();
} else {
break;
}
}
displayQueue();
}
struct node* enterData() {
cout << "Enter the number : ";
dataNode_P_A = new node; // Now dataNode points to a chunk allocated to node
cin >> dataNode_P_A->data;
dataNode_P_A->previous = NULL; // this is set to NULL because no one follows till now
queue* q = new queue;
q->first = dataNode_P_A; // this pointer points to the first element
return dataNode_P_A;
}
struct node* enter_N_Data() {
cout << endl << "Enter the number : ";
node* dataNode = new node;
cin >> dataNode->data;
dataNode->previous = dataNode_P_A;
queue* q = new queue;
q->last = dataNode; // this pointer points to the last element
return dataNode;
}
void displayQueue() {
while(dataNode_P_A != NULL) {
cout << dataNode_P_A->data << endl;
dataNode_P_A++;
}
}
이전 노드에 대한 포인터 만있는 링크 된 목록을 보지 못했습니다. N –
음, 이상합니다. 일반적으로 이전 연결 목록이 아닌 단일 연결 목록에서 다음 노드를 추적합니다. – trojanfoe
원하는 출력은 무엇입니까? 실제 출력은 무엇입니까? 정확히 어디에서 작동이 멈 춥니 까? 디버거를 작동시킬 시간. – razlebe