数据结构与算法2-4 堆栈链式存储

链表中,只有一端进行插入与删除

在表头的位置,以避免需要知道实际数据长度

结构:

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;
     }

 }
原文地址:https://www.cnblogs.com/guoshiyv/p/7149912.html