Ghi chú của người quản lý: Tất cả các code của tất cả các ngôn ngữ bạn đều phải bỏ vào thẻ code để hiện thị đúng nhất đoạn code, nếu không một số lệnh sẽ bị thực thi ví dụ conio.h sẽ biến mất. Bạn có thể bỏ đoạn code vào thẻ code bằng cách bôi đen nó và nhấn vào hình [<>] ở trên thanh công cụ. Chú ý nha
- Code:
#include <conio.h>
#include <stdio.h>
#include <iostream>
typedef struct DNode
{
int info;
DNode *next;
DNode *pre;
};
typedef struct DList
{
DNode *head;
DNode *tail;
};
void init(DList &L);
DNode *getnode(int x);
void addtail(DList &L,DNode *new_ele);
DNode *inserttail(DList &L,int x);
void nhap(DList &L);
void xuat(DList L);
void main()
{
int a,x;
DList L;
init(L);
nhap(L);
xuat(L);
getch();
}
void init(DList &L)
{
L.head=L.tail=NULL;
}
DNode *getnode( int x)
{
DNode *p;
p=new DNode;
if(p==NULL)
{
printf("khong du bo nho\n");
return NULL;
}
p->info=x;
p->next=NULL;
return p;
}
void addtail(DList &L,DNode *new_ele)
{
if(L.head==NULL)
{
L.head=new_ele;
L.tail=L.head;
}
else
{
L.tail->next=new_ele;
L.tail=new_ele;
}
}
DNode *inserttail(DList &L,int x)
{
DNode *new_ele=getnode(x);
if(new_ele==NULL)
return NULL;
addtail(L,new_ele);
return new_ele;
}
void nhap(DList &L)
{
DNode *p;
int x;
char traloi;
do
{
printf("nhap vao gia tri ");
scanf("%d",&x);
inserttail(L,x);
cout<<"nhap tiep khong(Y/N) ";
cin>>traloi;
}while(traloi=='Y'||traloi=='y');
}
void xuat(DList L)
{
DNode *p;
for(p=L.head;p!=NULL;p=p->next)
cout<<p->info<<" ";
cout<<"\n";
}