gpt4 book ai didi

c - 将元素添加到 C 结构体序列的前面

转载 作者:行者123 更新时间:2023-11-30 15:44:51 25 4
gpt4 key购买 nike

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 语句有什么问题。我不知道如何保留以前的值 if(seq->top!=NULL)。

我的起始问题是 adding element to the end of sequence in C struct它被这个函数覆盖了。现在我重写了它,需要找出一种方法在添加新值的同时保持 seq->bottom 的值。

最佳答案

我想这就是你想要的:

   else {
topq->prev=NULL; // make sure our prev is null
topq->next = seg->top; // set our next to the current top
seg->top->prev = topq; // set the current top to point back to us
seq->top=topq; // set current top to be us
}

请注意,在此 else 子句中,bottom 不需要更改

关于c - 将元素添加到 C 结构体序列的前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com