c语言高手呢?高分请教(300分相送)

zxz775 2003-11-19 07:07:25
使用整型数组存储结构实现一个可变长的环形链表,该链表由它的当前节点的索引指针所标识。写出在当前节点之后插入一个节点和删除一个节点的函数或过程。假设仅可以使用alloc()函数申请k个连续整型内存空间(其返回空间的首地址)和del(void *p)删除指针p所指示的k个连续整型空间(k为一个常数,可以定为20)。要求内存中不用的闲置空间不大于k个整型空间。假设整个链表的长度不大于nk个整型单元(n为一个常数,可以定为50)。

这是一道试题。

...全文
103 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengsion 2003-11-19
  • 打赏
  • 举报
回复
当然,插入和删除的时候,需要移动数组中的元素.
chengsion 2003-11-19
  • 打赏
  • 举报
回复
让数组的下标加1或减1对长度取模,实现循环.
同时规定,当尾标还差一个空间就追上头标的话,为链表已满,需要扩充空间.
而当头标追上尾标时,为空.
chengsion 2003-11-19
  • 打赏
  • 举报
回复
你的表述可能有一些问题
首先,如果用malloc()来申请空间的话
只能在整个结构结束后才能清除.
用数组实现循环链表的思想比较简单,在程序中每次当空间不够用时,使用alloc()申请更大的空间,
将原有空间的数据保存在新空间中,删除原空间,将原指针指向新申请的空间.

goodboyyxh 2003-11-19
  • 打赏
  • 举报
回复
你的表达让我迷惑......
zhy0101 2003-11-19
  • 打赏
  • 举报
回复
链表为什么要用数组实现
bbgbianbaogui 2003-11-19
  • 打赏
  • 举报
回复
sorry,i don't know.
proware 2003-11-19
  • 打赏
  • 举报
回复
反问:
仅用alloc申请内存,那么当须插入一个接点时,当前节点后面有两个闲置的节点
如果你在申请一个k的内存,其闲置的空间必然大于k,如果不申请,那叫插入节点吗?

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧