永发信息网

C语言数据结构中有尾指针的单循环链表

答案:2  悬赏:0  手机版
解决时间 2021-02-06 12:07
C语言数据结构中有尾指针的单循环链表
#include
#include
#include
struct node
{
int date;
struct node *next;
};

void init(struct node** linklist);
//尾指针单循环链表函数
//尾指针单循环链表函数
void create11(node*);//
void printf11(node* linklist);
int main()
{
node* linklist;
int a1;
init(&linklist);
printf("-------------------------\n");
create11(linklist);
printf11(linklist);
return 0;
}
void printf11(node* linklist)
{
node *p=linklist->next->next;
while(p!=linklist->next)
{
printf("%d ",p->date);
p=p->next;
}
printf("\n");
}
void create11(node* linklist)
{
int n;
int date;
printf("input date total:");
scanf("%d",&n);
for(int i=0;i {
node *p;
p=(node*)malloc(sizeof(node));
if(!p)
exit(0);
printf("input %d date:",i+1);
scanf("%d",&date);
p->date=date;
p->next=linklist->next;
linklist->next=p;
linklist=p;
}
}
void init(struct node** linklist)
{
*linklist=(node*)malloc(sizeof(node));
if(!(*linklist))
exit(0);
(*linklist)->next=*linklist;
}
//为什么打印出来有乱码,应该怎么改正?
//并要求每次插入结点做为尾指针
最佳答案
单循环链表实现队列的出列操作的复杂度过高,因此推荐用带头指针的双向循环链表实现队列操作。
全部回答
问题还不少,指针变量p,q在主函数中都没有值,如何运算,注意各个函数中定义的变量都是局部变量,只能在本函数中可见(使用),addtol()函数中的p和delete()中的q在main()中不可见,就是不能共用。main()函数中的语句: scanf("%d",&(p->code)); p->num=i;//p没有(值),这样容易出大问题 建议:首先你要有一个思路,想象一下,n个人手拉(链)手,从编号为1的人开始报数,执行约瑟夫循环过程。用两个函数完成,create_cl(linklist &l,int n)完成环(循环链表)的创建,第二个是约瑟夫循环过程(包括输出)。下面是我写的代码,你参考下 #include #include typedef struct lnode { int num; int code; lnode *next; }lnode,*linklist; void createlist(linklist &l,int n){ //创建带头结点的循环单链表 l=(linklist)malloc(sizeof(lnode)); l->next=l; linklist p,q=l; int i; for(i=1;i<=n;i++){ p=(linklist)malloc(sizeof(lnode)); if(!p) exit(0); p->num=i; printf("请输入第%d个人的密码值",i); scanf("%d",&p->code); p->next=q->next; q->next=p;q=p; } } void joseph(linklist l,int n){ linklist p=l,q; int count=0,m=p->next->code;//读取第一个人的密码 printf("\n出列序列:\n"); while(l->next!=l){ if(count==m-1){ q=p->next ;p->next =q->next ;//删除结点(出列) printf("%d\t",q->num); if(p->code<=0)exit(0); m=q->code;n--; free(q);count=0; }else{ p=p->next ; if(p->next==l)p=p->next;//报数时跳过头结点 count++; } } printf("\n"); } int main() { linklist l,p; int n=5; createlist(l,n); joseph(l,n); return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
盘子女人艺术摄影地址在什么地方,想过去办事
肚子皮下肚脐下面一点点的地方有一个硬块,摸
桃乐丝婚纱摄影在什么地方啊,我要过去处理事
凡人有喜婚纱摄影地址在什么地方,想过去办事
依一时尚烘焙我想知道这个在什么地方
影魅摄影地址有知道的么?有点事想过去
从威海到菏泽的车票价
白的拼音怎么写
山东聊城网通的IP段 是多少 ?
吃泡泡糖有何坏处?
重庆市涪陵区飞翔摄影工作室地址好找么,我有
关于铺设在混凝土垫层上的面层分格缝,下列技
嘉立连锁酒店(提督店)停车场在什么地方啊,我
如何评价迪玛希在歌手巅峰会演唱的《Give me
金夫人婚纱摄影(涪陵店)怎么去啊,我要去那办
推荐资讯
张家口黄土多少钱一方
必做题(12分)2013年4月8日早晨,英国前首相
ipad mini 可以用手机卡么?我记得好像可以外
汽车导航仪的logo怎么改?
怎样消除新床气味
兴安县广播电视局地址有知道的么?有点事想过
三星手机sn码怎么查
为什么铸造合金选用共晶成分的合金
开锁换锁汽车钥匙(长春东路与长春路交叉口北2
兰花能上煮熟的烂黄豆吗?
死去的故人身份证的年龄与实际的生日的不准按
一类通信局(站)联合防雷接地的接地电阻不得
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?