Data Structure II

Jadi Untuk kali ini saya belajar Tentang cara push dan pop di dalam Single Linked List

Ini adalah contoh kode yang saya pelajari di rumah setelah kelas CB01 jam 9.00 - 11.00 dan LB08 11.20 - 15,00 :

#include <stdio.h>
#include <windows.h>

struct Node{
    int data;
    Node *next;
}*head,*tail;

Node *newData(int data){
    Node *curr = (Node *)malloc(sizeof(Node));
    curr->data = data;
    curr->next = NULL;
    return curr;
}

void view(){
    Node *temp = head;
    while(temp != NULL){
        printf("%d ",temp->data);
        temp = temp->next;
    }
}

void pushHead(Node *data){
    if(head == NULL){
        head = tail = data;
    }
    else{
        data->next = head;
        head = data;
    }
}

void pushTail(Node *data){
    if(head == NULL){
        head = tail = data;
    }
    else{
        tail->next = data;
        tail = data;
    }
}

int main(int agrc,char **argv){
//    pushHead(newData(10));
//    pushHead(newData(30));
//    pushHead(newData(20));
//    pushHead(newData(50));

    pushTail(newData(50));
    pushTail(newData(10));
    pushTail(newData(40));
    pushTail(newData(30));
   
    view();
    return 0;
}

serta ini yang saya pelajari  di kelas CB01 yaitu pushTail dan popTail :

#include <stdio.h>
#include <stdlib.h>

struct node{
    int angka;
    struct node *next;
}*head,*tail,*curr;

void push(int angka){
//    ini adalah pushHead yang diajarkan di CB01
    curr = (struct node*)malloc(sizeof(struct node));
    curr->angka = angka;
    if(head == NULL){
        head = tail = curr;
    }
    else{
        curr->next = head;
        head = curr;
    }
    tail->next = NULL;
}

void pop(){
//    ini adalah popHead yang diajarkan di kelas LB08
    curr = head;
    if(head !=  NULL){
        head = head->next;
        free(curr);
        curr->next = NULL;
    }
}

void view(){
    curr = head;
    while(curr != NULL){
        printf("%d ",curr->angka);
        curr = curr->next;
    }
}

int main(int argc, char **argv){
    push(112);
    push(33);
    push(10);
    push(15);
    view();
    getchar();
    pop();
    pop();
    pop();
    pop();
    view();           
    return 0;
}

Komentar