eng
competition

Text Practice Mode

testcoding1

created Nov 29th 2020, 11:35 by canhnang


0


Rating

343 words
3 completed
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);
}
     

saving score / loading statistics ...