typedef struct stack_node {
ETYPE data;
struct stack_node *prev, *next;
}NODE;
struct seq_struct {
// "Container" struct
NODE* top, *bottom;
int size;
};
void seq_add_front(Seq seq, ETYPE val){
/* create a node to be added to the front of the sequence */
NODE* topq = malloc(sizeof(NODE));
topq->data = val;
if(seq->top==NULL){
topq->prev=NULL;
topq->next=NULL;
seq->top = topq;
seq->bottom=topq;
}
else{
topq->prev=NULL;
topq->next=NULL;
seq->top=topq;
seq->bottom=topq->next;
//seq->top=topq;
}
/* increment the size */
seq->size++;
}
我需要你的帮助来理解我的 else 语句有什么问题。如果(seq->top!=NULL),我无法弄清楚如何保留以前的值。
我开始的问题是在 C 结构中的序列末尾添加元素,它被这个函数覆盖。现在我重写了它,需要想办法在添加新值的同时保持 seq->bottom 的值。