Code
#include<stdio.h>
//程序结构
//首先接受输入(头结点位置,结点个数,翻转子表长度)。
//使用堆栈,先进后出。--堆栈的链式存储实现
//利用Length判断堆栈的pop时机。
typedef int ElemenType;
typedef struct SNode *Stack; //Stack 堆栈
struct SNode{
ElemenType address
ElemenType Data;
struct SNode *Next;
};
Stack CreateStack(){
/*构建一个堆栈的头结点,返回指针*/
Stack S;
S = (Stack)malloc(sizeof(struct SNode));
S->Next = NULL;
return S;
}
int isEmpty(Stack S){
/*判断堆栈S是否为空,若为空函数则返回整数1.否则返回0*/
return(S->Next==NULL)
}
int main (){
node *p;
scanf("%d %d %d",&node,&N,&Length);
for(int i = 1;i<N;i++){
scanf("%d %d %d",&p,&p->data,&p->Next)
}
}
void push(ElemenType item,Stack S){
/*将元素item压入堆栈S*/
struct SNode *Temcell;
Temcell =(struct SNode *)malloc(sizeof(struct SNode));
Temcell->Element = item;
Temcell->Next = S->Next;
S->Next = Temcell;
}
ElemenType pop(Stack S){
struct SNode *FirstCell;
ElemenType TopElem;
if(isEmpty(S)){
print("堆栈为空");return NULL;
}
else{
FirstCell=S->Next;
s->Next=FirstCell->Next;
TopElem=FirstCell->Element;
free(FirstCell);
return TopElem;
}
}
update
我现在可以写出push()和pop()函数,还要写出其作用对象。
那么利用什么联系起来呢?