数据结构课程设计-猴子选大王课程设计(编辑修改稿)内容摘要:

ct node { int data。 struct node *next。 猴 子选大王 5 }linklist。 主函数的实现调用操作: 采用循环链表来实现,可参考课本。 int main() { int i, n, k, m, total。 linklist *head, *p, *s, *q。 /* 读入问题条件 */ printf(Please enter the number of monkeys:)。 scanf(%d, amp。 n)。 printf(Please enter from the monkeys began to count off the first of several:)。 scanf(%d, amp。 k)。 printf(Please enter the number out:)。 scanf(%d, amp。 m)。 /* 创建循环链表,头节点也存信息 */ head = (linklist*) malloc(sizeof(linklist))。 猴 子选大王 6 p = head。 pdata = 1。 pnext = p。 /* 初始化循环链表 */ for (i = 2。 i = n。 i++) { s = (linklist*) malloc(sizeof(linklist))。 sdata = i。 snext = pnext。 pnext = s。 p = pnext。 } /* 找到第 k 个节点 */ p = head。 for (i = 1。 i k。 i++) 猴 子选大王 7 { p = pnext。 } /* 保存节点总数 */ total = n。 printf(\nOut of sequence:)。 q = head。 /* 只剩一个节点时停止循环 */ while (total != 1) { /* 报数过程, p 指向要删除的节点 */ for (i = 1。 i m。 i++) { p = pnext。 } 猴 子选大王 8 /* 打印要删除的节点序号 */ printf([%d] , pdata)。 /* q 指向 p 节点的前驱 */ while (qnext != p) { q = qnext。 } /* 删除 p 节点 */ qnext = pnext。 /* 保存被删除节点指针 */ s = p。 /* p 指向被删除节点的后继 */ p = pnext。 /* 释放被删除的节点 */ free(s)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。