Ngăn Xếp(Stack) Phần 2: Thao tác với ngăn xếp

0

Tính độ dài ngăn xếp

int Dodai(Stack S){
    Node *P = S.Top; // Khai bao con tro P tro toi S
    int i = 0;
    while (P!=NULL){
        i++;
        P=P->Next;
    }
    return i;
}

Thêm phần tử vào ngăn xếp

void Push(Stack &S, int x) //them phan tu vao Stack
{
    //Tao ra 1 NODE MOI
    //c malloc
    Node *Q=new Node;
    Q->Data=x;
    Q->Next=S.Top;		//CHO Q BẤU VÀO  S.TOP
    S.Top=Q;			//CẬP NHẬT LẠI TOP LÀ Q
}


Xóa và lấy dữ liệu tại Top

int Pop(Stack &S) //Loai bo phan tu khoi Stack
{
    if (!Kiemtrarong(S)) //KIEM TRA NEU 
    {
        int x = S.Top->Data; //lấy ra giá trị của PT Top nếu muốn dùng sau này
        S.Top = S.Top->Next; //Cho Top trỏ đến PT Kế tiếp==Xóa phần tử tại Top
        return x;
    }
}
Leave A Reply

Your email address will not be published.