Text Practice Mode
testcoding1
created Nov 29th 2020, 11:35 by canhnang
0
343 words
3 completed
0
Rating visible after 3 or more votes
00:00
#include<stdio.h>
struct node
{
int data;
struct node *Next;
};
typedef struct node NODE;
struct list
{
NODE *Head;
NODE *Tail;
};
typedef struct list LIST;
void init(LIST &l){
l.Head = l.Tail = NULL;
}
NODE *createNode(int x){
NODE *p;
p = new NODE;
if(p==NULL){
return NULL;}
else
p->data = x;
p->Next = NULL;
return p;
}
void addFirst(LIST &l, NODE *p){ //ham them vao dau
if(l.Head==NULL){
l.Head = l.Tail =p;}
else
p->Next = l.Head;
l.Head=p;
}
void addLast(LIST &l, NODE *p){ // ham them vao cuoi
if(l.Head==NULL){
l.Head = l.Tail =p;}
else
l.Tail->Next = p;
l.Tail=p;
}
void addAfter(LIST &l){ //ham them vao bat ki
int x,y;
printf("Nhap vao gia tri node p can them vao sau: ");scanf("%d",&y);
NODE *p = createNode(y);
printf("Nhap vao gia tri node q: ");scanf("%d",&x);
NODE *q = createNode(x);
if (q->data == l.Head->data && l.Head->Next == NULL){
addLast(l, p);}
else{
for (NODE *i = l.Head; i != NULL; i = i->Next){
if (q->data == i->data){
NODE *h = createNode(p->data);
NODE *g = i->Next;
h->Next = g;
i->Next = h;}
}
}
}
void nhapdslkfirst(LIST &l){ //// nhap vao 1 hoac n phan tu vao dau danh sach lien ket
int n;
printf("Nhap vao so luong phan tu: ");scanf("%d",&n);
for(int i=1; i<=n; i++){
int x;
printf("Nhap vao data: "); scanf("%d",&x);
NODE *p = createNode(x);
addFirst(l,p);
}
}
void nhapdslklast(LIST &l){ // nhap vao 1 hoac n phan tu vao cuoi danh sach lien ket
int n;
printf("Nhap vao so luong phan tu: ");scanf("%d",&n);
for(int i=1; i<=n; i++){
int x;
printf("Nhap vao data: ");scanf("%d",&x);
NODE *p = createNode(x);
addLast(l,p);
}
}
void xuatdslk(LIST &l){
printf("Danh sach lien ket la: ");
for(NODE *i= l.Head; i!= NULL; i=i->Next){
printf("%d ",i->data);
}
}
void countnode(LIST &l){ //ham dem so phan tu
int n,count=0;
for(NODE *i= l.Head; i!= NULL; i=i->Next ){
if(i->data !=NULL){
count++;
}
}
printf("So node co trong danh sach la: %d", count);
}
int main(){
LIST l;
init(l);
printf("\nThem nhieu node vao dau danh sach: ");
nhapdslkfirst(l);
xuatdslk(l);
printf("\n---------------------\n");
printf("\nThem nhieu node vao dau danh sach: ");
nhapdslklast(l);
xuatdslk(l);
}
struct node
{
int data;
struct node *Next;
};
typedef struct node NODE;
struct list
{
NODE *Head;
NODE *Tail;
};
typedef struct list LIST;
void init(LIST &l){
l.Head = l.Tail = NULL;
}
NODE *createNode(int x){
NODE *p;
p = new NODE;
if(p==NULL){
return NULL;}
else
p->data = x;
p->Next = NULL;
return p;
}
void addFirst(LIST &l, NODE *p){ //ham them vao dau
if(l.Head==NULL){
l.Head = l.Tail =p;}
else
p->Next = l.Head;
l.Head=p;
}
void addLast(LIST &l, NODE *p){ // ham them vao cuoi
if(l.Head==NULL){
l.Head = l.Tail =p;}
else
l.Tail->Next = p;
l.Tail=p;
}
void addAfter(LIST &l){ //ham them vao bat ki
int x,y;
printf("Nhap vao gia tri node p can them vao sau: ");scanf("%d",&y);
NODE *p = createNode(y);
printf("Nhap vao gia tri node q: ");scanf("%d",&x);
NODE *q = createNode(x);
if (q->data == l.Head->data && l.Head->Next == NULL){
addLast(l, p);}
else{
for (NODE *i = l.Head; i != NULL; i = i->Next){
if (q->data == i->data){
NODE *h = createNode(p->data);
NODE *g = i->Next;
h->Next = g;
i->Next = h;}
}
}
}
void nhapdslkfirst(LIST &l){ //// nhap vao 1 hoac n phan tu vao dau danh sach lien ket
int n;
printf("Nhap vao so luong phan tu: ");scanf("%d",&n);
for(int i=1; i<=n; i++){
int x;
printf("Nhap vao data: "); scanf("%d",&x);
NODE *p = createNode(x);
addFirst(l,p);
}
}
void nhapdslklast(LIST &l){ // nhap vao 1 hoac n phan tu vao cuoi danh sach lien ket
int n;
printf("Nhap vao so luong phan tu: ");scanf("%d",&n);
for(int i=1; i<=n; i++){
int x;
printf("Nhap vao data: ");scanf("%d",&x);
NODE *p = createNode(x);
addLast(l,p);
}
}
void xuatdslk(LIST &l){
printf("Danh sach lien ket la: ");
for(NODE *i= l.Head; i!= NULL; i=i->Next){
printf("%d ",i->data);
}
}
void countnode(LIST &l){ //ham dem so phan tu
int n,count=0;
for(NODE *i= l.Head; i!= NULL; i=i->Next ){
if(i->data !=NULL){
count++;
}
}
printf("So node co trong danh sach la: %d", count);
}
int main(){
LIST l;
init(l);
printf("\nThem nhieu node vao dau danh sach: ");
nhapdslkfirst(l);
xuatdslk(l);
printf("\n---------------------\n");
printf("\nThem nhieu node vao dau danh sach: ");
nhapdslklast(l);
xuatdslk(l);
}
saving score / loading statistics ...