| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 715 人关注过本帖
标题:数据结构与算法实验题2.3 亚克星上的军队
只看楼主 加入收藏
yxlcklo
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
数据结构与算法实验题2.3 亚克星上的军队
实验任务
亚克星上住着许多神奇的生物。其中有聪慧的人族、优雅的精灵、彪悍的野蛮猪、粗鲁
的首任驻….有一天,住在湛蓝球上的恶魔们突破空间的封锁入侵这个美丽的星球。为了保
卫共同的家园,亚克星各族不得不摒弃前嫌,组成联盟。为了更有利的反击恶魔们的入侵,
他们建立了统一的军事指挥中心。在前期,指挥中心会不停的发布军队调动命令,可是,蛮
烦来了。为了更好的做出决策,指挥中心必须迅速了解己方的各地区的军事力量详情。你能
否帮帮这些可怜的种族呢?
每个地区有一个编号(从1 到N),如果一个地区有军队的话,这些军队将组成一个军
团。指挥中心将发布的命令如下:
U a b:将b 地区军团的调到a 地区,从而组成一个新的军团。为了便于管理,每次新加
入的军队将按顺序加入到a 军团后面。数据保证a 与b 不相同。
I a x:将一支人数为x 的军队调到a 地区。为了便于管理,每次新加入的军队将加入到
a 军团前面。
D a x:将a 地区中军队人数为x 的调走。若不存在,则不执行。
Q a:询问a 地区的具体军事信息(即按顺序输出该军团中每个军队的人数)。
数据输入
输入第一行为一个正整数N ,M(2 <= N,M <= 1000)。
接下来N 行,每行第一个数K 表示该地区军队的个数K(1<=K<=100),接下来K 个数
表示各个军队的人数信息(0<=ai<2^31)。
接下来M 行,每行一个操作。
数据输出
对于每个询问操作,输出一行表示a 地区具体军事信息,每两个数之间空格隔开,,行
末无空格。若a 内无元素,输出-1。
输入示例
3 9
2 1 2
3 1 2 3
4 3 2 1 3
U 1 2
Q 1
Q 2
U 3 1
Q 3
I 1 1
Q 1
D 3 1
Q 3
输出示例
1 2 1 2 3
-1
3 2 1 3 1 2 1 2 3
13
2 3 2 2 3#include<stdio.h>
#include<stdlib.h>
#include<math.h>
typedef struct node *link;
typedef struct node {ListItem element;link next;} Node;

link NewNode()
{
  link p;
  if((p=malloc(sizeof(Node)))==0)
      Error("Exhausted memory");
  else return p;
}
List ListInit();
void ListInsert(int k,ListItem x,List L);
ListItem ListDelete(int k;List L);
void PrintList(List L);
main()
{
    int a,b,i,n,m,l,p,q;
    char letter;
    scanf("%d %d",&a,&b);
    for(i=1;i<=a;i++)
    {scanf("%d",&n);
      for(m=1;m<=b;m++)
          scanf("%d",&l);
    }
    for(i=1;i<=b;i++)
    {
     scanf("%c",&letter);
     switch(letter)
     {
        case D:{ scanf("%d %d",&q,&p);
              ListDelete(k,L);
           } break;
        case I:{ scanf("%d %d",&q,&p);
             ListInsert(k,x,L);
           } break;
        case Q:{ scanf("%d",&p);
             PrintList(L);
           } break;
         case U:{ scanf("%d %d",&q,&p);
             ListInsert(k,x,L);
           } break;
    }
    }
}
LNode ListInit();
{
    List L=malloc(sizeof *L);
    L->first=0;
    return 0;
}
ListItem ListDelete(int k;List L);
{
    link p,q;
    ListItem x;
    int i;
    if(k<1||!L->first) Error("out of bounds");
    p=L->first;
    if(k==1) L->first=p->next;
    else { q=L->first;
           for(i=1;i<k-1&&q;i++) q=q->next;
           p=q->next;
           q->next=p->next;}
    x=p->element;free(p);
    return x;
}
void ListInsert(int k,ListItem x,List L);
{
    link p,y;
    int i;
    if(k<0) Errror("out of bounds");
    p=L->first;
    for(i=1;i<k&&p;i++) p=p->next;
    y=NewNode();
    y->element=x;
    if(k) {y->next=p->next;p->next=y;}
    else {y->next=L->first;L->first=y;}
}
void PrintList(List L);
{
    link p;
    for(p=L->first;p;p=p->next) ItemShow(p->element);
}
E:\031102546\2.cpp(5) : error C2146: syntax error : missing ';' before identifier 'element'
E:\031102546\2.cpp(5) : error C2501: 'ListItem' : missing storage-class or type specifiers
E:\031102546\2.cpp(5) : error C2501: 'element' : missing storage-class or type specifiers
E:\031102546\2.cpp(10) : error C2440: '=' : cannot convert from 'void *' to 'struct node *'
        Conversion from 'void*' to pointer to non-'void' requires an explicit cast
E:\031102546\2.cpp(11) : error C2065: 'Error' : undeclared identifier
E:\031102546\2.cpp(14) : error C2146: syntax error : missing ';' before identifier 'ListInit'
E:\031102546\2.cpp(14) : error C2501: 'List' : missing storage-class or type specifiers
E:\031102546\2.cpp(14) : fatal error C1004: unexpected end of file found
不知道为什么出现这样的问题
搜索更多相关主题的帖子: 中心 军事力量 指挥 
2012-09-15 10:05
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:20 
这些问题都有提示,只要逻辑上没错,语法上跟着提示一行一行的改就行了,还有就是不要写完程序再编译啊,养成良好的习惯,边写边编译,要不项目大了估计崩溃
2012-09-16 12:56
快速回复:数据结构与算法实验题2.3 亚克星上的军队
数据加载中...
 
   



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

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