当前位置:网站首页 > 区块链基础 > 正文

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



阅读下列说明和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;

}

到此这篇对于有头指针和尾指针的单向链表(对于有头指针和尾指针的单向链表是什么)的文章就 介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • b站怎么弄视频链接(b站视频链接怎么用)2025-05-12 09:00:09
  • 二维码跳转链接制作(二维码转跳网页)2025-05-12 09:00:09
  • 如何设置返回目录超链接(怎么设置返回的超链接)2025-05-12 09:00:09
  • 单向链表的特点是什么(单向链表的优点)2025-05-12 09:00:09
  • 跳转链接怎么弄成文件(跳转链接怎么弄成文件夹)2025-05-12 09:00:09
  • b站怎么弄视频链接(b站怎么在视频上放链接)2025-05-12 09:00:09
  • 跳转链接生成器(跳转链接生成器下载)2025-05-12 09:00:09
  • 单向链表冒泡排序(单向链表 排序)2025-05-12 09:00:09
  • 在新标签页中打开链接(在新标签页中打开链接是不是图片更清晰)2025-05-12 09:00:09
  • a标签打开新窗口(a标签在新窗口打开链接添加什么属性)2025-05-12 09:00:09
  • 全屏图片