| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:推销员日志问题求解(循环链表问题)
只看楼主 加入收藏
shenghua1889
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-12-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
推销员日志问题求解(循环链表问题)
一推销员在以下城市进行推销工作,在A城市工作3天,B城市工作5天,C城市工作1天,D城市工作3天,E城市工作4天,F城市工作6天,然后再回A城市工作,推销员按照以上顺序工作,这个推销员工作7天后,休息1天,工作100天后回厂家汇报一次工作,汇报完后继续前面的工作,请设计一次C语言程序,使用循环链表打印出他第三次返厂前正在哪一个城市工作?(请麻烦大家讲讲思路,谢谢)
搜索更多相关主题的帖子: 推销员 C语言 
2014-12-06 19:54
comewest
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:74
专家分:335
注 册:2014-12-3
收藏
得分:20 
//很久不看数据结构了,看到这种题目有点怀念,以下是我的思路,希望对你有用。
//先构造循环链表head前3个节点的data域值为A,接下来的5个节点的data域值为B,。。。。。依次按题意设置。
p=q=head1;
while(day-i<=300)         //day表示总日期,i表示休息日,day-i表示工作日
{   q=p;
    if((day-i)%7==0 || (day-i)%100==0)
        {i++;             //休息日
         day++;}
    else
        p=p->next;
    day++;
}
//循环结束后输出q的data域值就行了。

[ 本帖最后由 comewest 于 2014-12-7 00:19 编辑 ]
2014-12-06 20:55
comewest
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:74
专家分:335
注 册:2014-12-3
收藏
得分:0 
代码来了。。。
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
struct LNode{
char data;
struct LNode *next;
} ;
typedef struct LNode node;
node * creatp(void);
void main()
{
node *p,*q,*head1;
int day=1,i=0;
head1=creatp();
p=q=head1;
while(day-i<=300)
{   q=p;
    if((day-i)%7==0 || (day-i)%100==0)
        {i++;
         day++;}
    else
        p=p->next;
    day++;
}
printf("三次返厂之前工作的城市是:%c\n",q->data);
}
node *creatp()
{    node *head,*p,*rear;//定义指针变量
    int x=1;
    char a;
    head=(struct LNode *)malloc(sizeof(struct LNode));/*申请 struct list 类型字节长的存储空间,第一个括号中内容表示将申请空间的首地址经过强制类型转换为struct list *型并把转换后的首地址存储在指针head中;*/
    rear=head;//用一个需要移动的指针 rear 来存放头结点的地址
    puts("input name of the list :\n");
    while(x<=22)
    {   scanf("%c",&a);//输入值
        p=(struct LNode *)malloc(sizeof(struct LNode));
        p->data=a;//将输入的值取出一个值并存储在结点 p 的数据域中
        rear->next=p;//将结点 p 的首地址存放在 p 的前驱结点的指针域中
        rear=p;//rear指针后移到下一个结点
        x++;
    }
    rear->next=head;//指针 rear 移至最后一个结点处,将此结点的指针域指向头结点
    return (head->next);//函数结束时返回创建的单链表的头指针(此头指针指向的结点为输入的第一个数值所存放的结点)
}

[ 本帖最后由 comewest 于 2014-12-7 00:20 编辑 ]
2014-12-06 21:41
快速回复:推销员日志问题求解(循环链表问题)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099988 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved