@chawuciren
2018-11-21T13:42:27.000000Z
字数 949
阅读 654
CSI
所用的结构体,通过index可以判断栈空(好吧这个并没有什么用),data存符号或者数字,next指针连接链表
typedef struct linklist{
int data;
struct *linklinst next;
}linklist;
为栈的第一个节点分配一段空间,并且让他指向NULL,返回值应该是NULL,参数应该是这个节点
linklist* Initialization(){
linklist *new=(linklist*)malloc(sizeof(linklist));
new->next=NULL;
return new;
}
将一个符号或者数字进栈,参数是符号或者数字,返回的是一个栈的下一个节点?或者不返回(还是不返回比较好用)
怎么连接,真是个问题
bool push(linklist *stacknode,char x){
linklist *new=(linklist*)malloc(sizeof(linklist));
new->data=x;
new->next=stacknode;
stacknode->next=new;//为什么是next?
return 1;
}
判断栈空。
将栈顶元素返回,并且销毁这个节点。参数是栈的节点,返回值是符号或者数字。
linklist* pop(linklist *stacknode){
if(isEmpty(stacknode))
return NULL;
linklist *new=(linklist*)malloc(sizeof(linklist));
new=stacknode;
stacknode=stacknode->next;
free(new);
return stacknode;
}
判断栈是不是空的。怎么实现?
bool isEmpty(linklist *stacknode){
if(stacknode->next==NULL)
return 1;//isEmpty
return 0;
}
判断栈空
一个接一个地把节点free掉。
void destroy(linklist *stacknode){
while(stacknode->next!=NULL){
pop(stacknode);
}
return;
}
判断栈空
参数应该是栈的节点。
返回栈顶元素。