链表中,只有一端进行插入与删除
在表头的位置,以避免需要知道实际数据长度
结构:
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; } }