链栈的初始化,进栈,出栈,销毁栈

    科技2024-07-29  72

    #include <iostream> using namespace std; typedef int ElemType; #define MaxSize 100 typedef struct linknode { ElemType data; //数据域 struct linknode *next; //指针域 } LinkStNode; void SqstackInit(LinkStNode*&s) { s= (LinkStNode*)malloc(sizeof(LinkStNode)); s->next = NULL; } void pushSqstack(LinkStNode*&s, ElemType e) { LinkStNode * temp; temp = (LinkStNode*)malloc(sizeof(LinkStNode)); temp->data = e; temp->next = s->next; s->next = temp; } bool pushOutStstack(LinkStNode*&s, ElemType &e) { if (s->next == NULL) return false; LinkStNode * temp; temp = s->next; s->next = temp->next; e = temp->data; free(temp); return true; } void DestroyStstack(LinkStNode*&s) { LinkStNode *p = s->next, *q = s; while (p == NULL) { free(q); q = p; p = p->next; } free(q);//此时q指向尾结点 } int main() { LinkStNode *s; int i = 4,e; SqstackInit(s); pushSqstack(s,i); pushOutStstack(s, e); DestroyStstack(s); }
    Processed: 0.017, SQL: 8