1. 程式人生 > >數據結構與算法2-4 堆棧鏈式存儲

數據結構與算法2-4 堆棧鏈式存儲

數據 erro col free pty spa ret nod 插入

鏈表中,只有一端進行插入與刪除

在表頭的位置,以避免需要知道實際數據長度

結構:

typedef struct Node()
{
    ElementType data;
    struct node *Next;
}List;
List *Ptrl;

構造:

List *empty()
{
    List *Ptrl;
    Ptrl=(List *)malloc(sizeof(List));
    Ptrl->Next=NULL;
    return Ptrl;
}

判斷是否是空表

int isEmpty(List *Ptrl)
{
    return
(Ptrl->Next==NULL); }

插入:

 void Push(ElementType x,List *Ptrl)
 {
   List *temp;
   temp=(List *)malloc(sizeof(List));
   temp->data=x;
   temp->Next=Ptrl->next;
   Ptrl->Next=temp;
 }

刪除:

 ElementType Pop(List *Ptrl)
 {   
     List *temp;
     ElementType returndata;
     
if(isEmpty(Ptrl)) (printf("error");return NULL;) else { Ptrl->Next=temp; returndata=temp->data; Ptrl->Next=temp->next; free(temp); return returndata; } }

數據結構與算法2-4 堆棧鏈式存儲