#include "seq.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct stack_node {
ETYPE data;
struct stack_node *prev, *next;
}NODE;
struct seq_struct {
// "Container" struct
NODE* top, *bottom;
int size;
};
/**
* DESCRIPTION: adds a new element to the "back" of
* the seq
*
* [2 4]
* add_back 7
* [2 4 7]
*
*
*/
void seq_add_back(Seq seq, ETYPE val){
NODE* endq = malloc(sizeof(NODE));
endq->next =NULL;
endq->prev = seq->bottom;
endq->data = val;
seq->bottom->next=endq;
seq->bottom = endq;
seq->size++;
return;
}
Мне нужна ваша помощь в понимании того, что не так с моим кодом. Он не добавляет новый элемент в последовательность в конце, как и следовало бы.добавление элемента в конец последовательности в C struct
У меня есть другая часть кода, для удаления и добавления элементов в переднюю часть последовательности, и она отлично работает, а также отметить, что функция печати тоже прекрасна. все инициализируется до NULL и нулевое значение в начале программы.
Это правильный код, ' Seq' typedef структуры 'seq_struct'? –
Добавьте другую часть кода, возможно, какая-то другая часть кода искажает список последовательностей, который вы вызываете перед вызовом 'seq_add_back()' function –
Q: Является ли seq указателем на вашу запись «Последовательность»? Вы не передаете копию (копия, которая никогда не обновляется), не так ли? В: Что происходит с записью * first *? Определенно выполните шаг seq_add_back() под отладчиком: возможно, проблема * ACTUAL *, которую вы испытываете, находится в другом месте. ИМХО ... PS: Вам не нужно «возвращение» в функции void. – paulsm4