2025年对于有头指针和尾指针的单向链表(对于有头指针和尾指针的单向链表是什么)

对于有头指针和尾指针的单向链表(对于有头指针和尾指针的单向链表是什么)阅读下列说明和 C 代码 将应填入 n 处的字句写在对应栏内 说明 本题给出四个函数 它们的功能分别是 1 int push PNODE top int e 是进栈函数 形参 top 是栈顶指针的指针 形参 e 是入栈元素 2 int pop PNODE top int e 是出栈函数 形参 top 是栈顶指针的指针 形参 e 作为返回出栈元素使用 3 int enQueue PNODE tail int

大家好,我是讯享网,很高兴认识大家。

 阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

本题给出四个函数,它们的功能分别是:

1.int push(PNODE*top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

2.int pop(PNODE*top,int*e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

3.int enQueue(PNODE*tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

4.int deQueue(PNODE*tail,int*e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

以上四个函数中,返回值为。表示操作成功,返回值为-1表示操作失败。

栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

typedef struct node {

int value;

struct node * next;

} NODE, * PNODE;

【函数1】

int push(PNOOE * top,int e)

{

PNODE p = (PNODE) malloc (sizeof (NODE));

if (! p) return-1;

p->value=e;

(1);

*top=p;

return 0;

}

【函数2】

int pop (PNODE * top,int * e)

{

PNODE p = * top;

if(p == NULL) return-1;

* e = p->value;

(2);

free(p);

return 0;

}

【函数3】

int enQueue (PNODE * tail,int e)

{ PNODE p,t;

t= tail;

p = (PNODE) malloc(sizeof(NODE));

if(!p) return-1;

p->value=e;

p->next=t->next;

(3);

tail = p;

return 0;

}

【函数4】

int deQueue(PNODE * tail,int * e)

{ PNODE p,q;

if(( * tail)->next == * tail) return-1;

p= (* tail)->next;

q = p ->next;

* e =q ->value;

(4)=q->next;

if(,tail==q) (5);

free(q);

return 0;

}


讯享网

小讯
上一篇 2025-05-11 21:57
下一篇 2025-04-17 15:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198988.html