我正在尝试使用单个链表创建堆栈,我的推送操作不会将数据插入链表
这是我到目前为止所尝试过的
typedef struct element {
int data;
struct element *next;
}node;
推送方法
void push(node *root, int data) {
if(root == NULL) {
root = (node *) malloc (sizeof(struct element));
root->data = data;
root->next = NULL;
}
else {
node *temp = (node *) malloc (sizeof(struct element));
temp->data = data;
temp->next = root;
root = temp;
}
}
在我的主要方法中,我没有malloc
ed 头指针,
这就是我调用 Push 方法的方式,
push(head, data);
如何才能使推送操作生效?
The root
指针被修改为push
功能。该值不会传播到main
。一种方法是返回root
指针。
node* push(node *root, int data) {
if(root == NULL) {
root = (node *) malloc (sizeof(struct element));
root->data = data;
root->next = NULL;
}
else {
node *temp = (node *) malloc (sizeof(struct element));
temp->data = data;
temp->next = root;
root = temp;
}
return root;
}
在主要方面,你需要这样称呼它,
head = push(head, data);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)