首页 > 编程知识 正文

栈是顺序还是链式,顺序栈定义

时间:2023-05-04 16:54:29 阅读:159552 作者:2043

的链存储结构(链栈)1.链栈的存储结构

typedefstructstacknode { elemtype data; //节点的数据元素struct StackNode *next; //节点的指针字段}StackNode,*LinkStack; //StackNode* (指针类型)是指向堆栈内某个节点的指针,表示此节点的指针类型(//LinkStack )是指向堆栈内第一个节点的指针)2.链接堆栈的初始化和

statusinitstack(linkstacks ) /函数中对s的操作是对实际引用的操作S=NULL; //清空堆栈顶部指针;返回确定; } 3.链接堆栈的堆栈操作链接堆栈无需在堆栈前判断堆栈是否已满,只需为堆栈要素动态分配节点空间即可

statuspush(linkstacks,SElemType e )//形参的类型是引用,函数中对s的操作是对实参的操作p=new StackNode; //新节点(用指向该节点的指针表示) p-data=e; //将ep-next=S代入该节点数据字段; //用p-next替换指向原始堆栈中顶级节点的指针意味着删除了原始s指针S=p; //为了方便将来的新节点的堆栈,将新节点的指针置换为s (4.连锁堆栈的堆栈操作连锁堆栈在出堆栈前判断堆栈是否为空,出堆栈后释放其要素的堆栈顶部空间

statuspop(linkstacks,SElemType e ) /形参的类型是引用,函数中对s和e的操作是对实参的操作if(s==null ) /栈空return ERROR; e=S-data; //将堆栈顶部要素数据字段的内容代入形参ep=S; //将指向堆栈顶部元素的指针替换为p,S=S-next以备删除; //S-next指下一个节点,现用s指此节点表示删除了原来的S-nextdelete p; //节点p (即释放原始栈顶元素)5.从链栈中提取栈顶元素selemtypegettop(linkstacks ) if ) s!=空堆栈为非空的return S-data; //返回栈顶元素的数据字段的内容}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。