PHP Code:
#include"conio.h"
#include"stdio.h"
typedef struct tagnode
{
int info;
struct tagnode *pNext;
}node;
typedef struct taglist
{
node *pHead;
node *pTail;
}list;
void colist(list &l)
{
l.pHead=l.pTail=NULL;
}
node* get(int x)
{
node *p;
p=new node;
if(p==NULL)return 0;
else
{
p->info=x;
p->pNext=NULL;
}
}
void addhead(list &l,node *p)
{
if(l.pHead==NULL)
{
l.pHead=p;
l.pTail=l.pHead;
}
else
{
p->pNext=l.pHead;
l.pHead=p;
}
}
void addtail(list &l,node *p)
{
if(l.pHead==NULL)
{
l.pHead=p;
l.pHead=l.pTail;
}
else
{
l.pTail->pNext=p;
l.pTail=p;
}
}
void addafterq(list &l,node *q,node *p)
{
if(q!=NULL)
{
p->pNext=q->pNext;
q->pNext=p;
}
if(l.pTail==q)
addtail(l,p);
else
addhead(l,p);
}
void deletehead(list &l)
{
node *p;
p=l.pHead;
l.pHead=l.pHead->pNext;
delete p;
}
void deletetail(list &l)
{
node *p,*q;
p=l.pHead;
while(p!=l.pTail)
{
q=p;
p=p->pNext;
}
l.pTail=q;
q->pNext=NULL;
delete p;
}
node* tim(list l,int x)
{
node *p;
p=l.pHead;
do
{
if(p->info==x) return p;
p=p->pNext;
}
while(p!=l.pTail);
}
void timx(list l,int x)
{
int i=0;
node *p;
p=l.pHead;
do
{
if(p->info==x) i++;
p=p->pNext;
}
while(p!=l.pTail);
if(i<=0)
{
printf(" khong tim thay");
}
else
{
printf("x nam trong danh sach");
}
}
void hoandoi(int &a,int &b)
{
int c;
c=a;
a=b;
b=c;
}
void sapxep(list &l)
{
node *p,*q;
for(p=l.pHead;p!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
if(p->info>q->info)hoandoi(p->info,q->info);
}
void inds(list &l)
{
node *p;
p=l.pHead;
while(p!=NULL)
{
printf("%d ",p->info);
p=p->pNext;
}
}
int main()
{
node *p,*s;
int x,d;
list l;
colist(l);
do
{
printf("nhap x \n");
scanf("%d",&x);
if(x<0)break;
p=get(x);
addhead(l,p);
}while(1);
inds(l);
printf("nhap x ban muon chen");
scanf("%d",&x);
printf("nhap q ban muon chen sau no");
scanf("%d",&d);
s=tim(l,d);
addafterq(l,s,get(x));
inds(l);
printf("nhap x muon tim ");
scanf("%d",&x);
timx(l,x);
sapxep(l);
inds(l);
getch();
return 0;
}
Comment