01/10/2018, 16:04
Cho e hỏi là khi e viết DSLK đơn thì lại bị lỗi vòng lặp vậy ạ?
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
struct Node
{
int Data;
Node *pNext;
};
typedef struct Node NODE;
struct List
{
NODE *pHead;
NODE *pTail;
};
typedef struct List LIST;
void Init(LIST &l)
{
l.pHead = l.pTail = NULL;
}
NODE *GetNode(int x)
{
NODE *p = new NODE;
if (p == NULL)
{
return NULL;
}
p->Data = x;
p->pNext = NULL;
return p;
}
void AddHead(LIST &l, NODE *p)
{
if (l.pHead == NULL)
{
l.pHead = l.pTail = p;
p->pNext = NULL;
}
else
{
p->pNext = l.pHead;
l.pHead = p;
}
}
void AddTail(LIST &l, NODE *p)
{
if (l.pHead == NULL)
{
l.pHead = l.pTail = p;
}
else
{
l.pTail->pNext = p;
l.pTail = p;
}
}
void Input(LIST &l)
{
int n;
cout << "Nhap vao so Node: ";
cin >> n;
Init(l);
for (int i = 0; i < n; i++)
{
int x;
cout << "
Nhap vao Data: ";
cin >> x;
NODE *p = GetNode(x);
AddTail(l, p);
}
}
void OutPut(LIST l)
{
for (NODE *p = l.pHead; p != NULL; p->pNext)
{
cout << " " << p->Data;
}
}
int main()
{
LIST l;
Input(l);
OutPut(l);
_getch();
return 0;
}
Bài liên quan