南京师范大学2003-2011地理信息系统考研专业一试题(14)

本站小编 免费考研网/2015-08-16


        printf("Continue or Not?<Y/N>?");
        ch = getchar();
        getchar();
        if(ch=='n' || ch == 'N')
            flag = 0;
    }
}

(7)试设计一个算法解决地图着色判断问题。设一地图有n个区域(例如省)。用不多于4种
颜色对这些区域进行着色,着色应满足的要求是相邻的区域具有不同的颜色。你的算法以一
种着色方案(即哪一个区域着什么颜色)为输入,算法对该着色方案进行考察,若满足着色
要求,则输出true,否则输出false。(本题20分)
①用C语言描述你为解决问题而设计的数据结构(逻辑结构,存储结构)。数据结构的设计
应考虑对问题的清楚描述和算法的效率;
②用C语言写出你的算法。算法应简洁、高效。对算法中的参数、变量、语句做必要的注释,
以增加可读性;
③简单分析你的算法的空间开销和时间开销。

参考解法:
//    _ _ _ _ _ _
//   |_A_|_B_|_C_|
//   |_D_|_E_|_F_|
//   |_G_|_H_|_I_|
//<1>分别用1,2,3...,9表示A、B、C...I九个区域的编码
//<2>为了保证程序中数据的索引号与逻辑的索引号相同,N = 9 + 1,即N为区域个数加1
//<3>现在找任意两个区域之间的邻接关系relation[N][N],如果两个数区域相邻,则用1表示,否则用0表示
//relation[i][j]的值表示i区域和j区域是否相邻,如果值为1,表示相邻;若为0,表示不相邻。
//<4>同时建立数组a[N]用来存储N个区域分别使用的颜色索引号。
//<5>MapColor(int a[],int n)函数用来存储第n个区域的颜色:先检验前n-1个区域,查看哪些区域与第n个区域
//相邻,则第n个区域不能使用与其相邻区域的颜色,完成第n个区域后,再对第n+1个区域进行操作。
//<6>print()函数用于将起色方案打印输出,并记录总共方案数目。其中的打印格式应根据具体情况
//以不同格式打印输出。
//  |_A_|_B_|_C_|_D_|_E_|_F_|_G_|_H_|_I_|
//A |_0_|_1_|_0_|_1_|_1_|_0_|_0_|_0_|_0_|
//B |_1_|_0_|_1_|_1_|_1_|_1_|_0_|_0_|_0_|
//C |_0_|_1_|_0_|_0_|_1_|_1_|_0_|_0_|_0_|
//D |_1_|_1_|_0_|_0_|_1_|_0_|_1_|_1_|_0_|
//E |_1_|_1_|_1_|_1_|_0_|_1_|_1_|_1_|_1_|
//F |_0_|_1_|_1_|_0_|_1_|_0_|_0_|_1_|_1_|
//G |_0_|_0_|_0_|_1_|_1_|_0_|_0_|_1_|_0_|
//H |_0_|_0_|_0_|_1_|_1_|_1_|_1_|_0_|_1_|
//I |_0_|_0_|_0_|_0_|_1_|_1_|_0_|_1_|_0_|

#include<stdio.h>
#define N 10
int relation[N][N] = {0,0,0,0,0,0,0,0,0,0,
                      0,0,1,0,1,1,0,0,0,0,
                      0,1,0,1,1,1,1,0,0,0,
                      0,0,1,0,0,1,1,0,0,0,
                      0,1,1,0,0,1,0,1,1,0,
                      0,1,1,1,1,0,1,1,1,1,
                      0,0,1,1,0,1,0,0,1,1,
                      0,0,0,0,1,1,0,0,1,0,
                      0,0,0,0,1,1,1,1,0,1,
                      0,0,0,0,0,1,1,0,1,0};
int count = 0;

void print(int a[])
{
    int i;
    count++;
    printf("The %dst method:\n",count);
    for(i=1;i<N;i++)
    {
        printf("%d ",a[i]);
        if(i%3==0)printf("\n");
    }
    printf("\n");

}

void MapColor(int a[],int n)
{
    int i;
    int color[5] = {0,1,1,1,1};
    if(n==N)    print(a);
    else
    {
        for(i=1;i<n;i++)
        {
            if(relation[n][i])
            {
                color[a[i]] = 0;
            }
        }
        for(i=1;i<5;i++)
        {
            if(color[i])
            {
                a[n] = i;
                MapColor(a,n+1);
            }
        }
    }
}

void main()
{
    int a[N];
    a[1] = 1;
    MapColor(a,2);
    if(count>0)
        printf("True\n");
    else
        printf("False\n");
}

(8)已知一棵树的边的结合为
{(I,M),(I,N),(E,I),(B,E),(B,D),(C,B),(G,J),(G,K),(A,G),(A,F),(H,L),(A,H),(C,A)},
试画出这棵树,并回答下列问题:(本题20分)
①哪个是根节点?
②哪些是叶子节点?
③树的深度是多少?
④写出该树的前序遍历序列
参考答案:
C
--A
----F
----G
------J
------K
----H
------L
--B
----D
----E
------I
--------M
--------N
①The root is :C.
②The leaf Nodes are :F、J、K、L、D、M、N.
③The depth of the tree :5.
④PreOrder :CAFGJKHLBDEIMN
南京师范大学2005年研究生入学考试试题-科目名称:C语言程序设计(含数据结构)
(1)设A和B是两个顺序表,其元素按从小到大的顺序排列。编写一个将A和B中相同元素组成
一个新的从大到小的有序顺序表C的算法,并分析算法的时间复杂度。(本题15分)
参考算法:
#include<stdio.h>
#define N 80
void merge(char a[],char b[],char c[])
{
    int i=0,j=0,k=0;
    while(a[i] != '\0') i++;
    while(b[j] != '\0') j++;
    i--;
    j--;
    while(i>=0 && j>=0)
    {
        if(a[i]==b[j])
        {
            c[k++] = a[i];
            i--;
            j--;
        }
        else if(a[i]>b[j])
            i--;
        else
            j--;
    }
    c[k] = '\0';
}
void main()
{
    char a[N],b[N],c[N];
    printf("input string a:");
    gets(a);
    printf("input string b:");
    gets(b);
    merge(a,b,c);
    puts(c);
}

(2)若线性表用单链表(带表头结点)作为存储结构,写出其就地逆置算法。(本题15分)
参考算法:
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
    int data;
    struct node *next;
}LNode;
void convert(LNode * &h)
{
    LNode *p,*q;
    p = h->next;
    h->next = NULL;
    while(p)
    {
        q = p->next;
        p->next = h->next;
        h->next = p;
        p = q;
    }
}
void print(LNode *h)
{
    h = h->next;
    while(h)
    {
        printf("%d ",h->data);
        h = h->next;
    }

相关话题/地理

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 2001-2008年西南大学人文地理学考研真题
    2001年人文地理学 一、 名词解释(15) 1、中东 2、地理大发现 3、大洋洲 4、尼罗河 5、巴黎盆地 二、 简述题(20) 1、世界地理环境结构的地域分异规律 2、战后科技革命对世界经济发展和产业分布的影响 三、 填图题(图) 在图上填出(15) 1、统一后的德国国界和国名(1) ...
    本站小编 免费考研网 2015-08-09
  • 华南师范大学人文地理学2002-2011历年考研真题(附答案)
    华南师范 大学 2011 硕士 研究生招生入学考试试卷 人文地理学 一、名词解释(每题 5 分,共 30 分) 1、因子生态分析法 2、容积率和建筑密度 3、城市发展的经济基础原理 4、产业集群 5、集聚与扩散 6、旅游规划 二、简答题(70 分) 1、请简述我国的区域空间规划体系。(15 分) ...
    本站小编 免费考研网 2015-07-22
  • 湖南师范大学经济地理学复试资料(整合)
    第一章 绪论 何谓经济地理学? 答:经济地理学是研究经济活动区位、空间组织及其地理环境相关系的学科。 试述经济地理学的研究对象。 答:经济地理学的研究对象包括:经济活动的内容、区位、空间 ...
    本站小编 免费考研网 2015-07-22
  • 2013年兰州大学818现代地理学(含自然地理学、经济地理学)+考研试题(回忆版)
    2013年兰州大学818现代地理学(现代地理学(含自然地理学、含自然地理学、经济 地理学) 地理学) 考研试题) 考研试题(考研试题(回忆版)回忆版) 一、名词解释(每题6分) 1、不整合 2、干洁空气 3、锋 4、雪线 5、黄土 6、土壤质地 7、生态系统 8、隐域性 二、简答题(每题8分) 1、岩石的结构与构造 2、沉积岩的基本 ...
    本站小编 网络资源 2015-07-16
  • 人文地理学 赵荣等 高等教育出版社(答案)
    第一章 绪论 1、 人文地理学在地理学中的地位和作用。 人文地理学是以人地关系的理论为基础,探讨各种人文现象的地理分布、扩散和变化,以及人类社会活动的地域结构的形成和发展规律的一门学科。又称人生地理学。它是地理学的两个主要分支学科之一,人文二字与自然地理学的自然二字相对应 ...
    本站小编 免费考研网 2015-07-16
  • 西北大学2015中国历史地理学考题
    西北大学2015中国历史地理学考题 一、名词解释 沿革地理学 地理环境决定论 新秦中 陈桥驿 统万城 关西和关东 二、简答题 1、简述中国历史时期人口变化特点及其影响。 2、简述毛乌素沙漠的形成原因。 3、简述中国历史上东西对峙的原因。 三、论述题 1、论述中国历史时期气候变迁及其影响。 2、论述安阳成为中国七大古都 ...
    本站小编 网络资源 2015-07-15
  • 西北师范大学2011年,2012年自然地理试题
    2010 一名词解释 1沉积建造 2米兰科维奇理论 3水分循环 4土壤肥力 5趋同适应 6洪积扇 7正断层 8海陆风 二简答题 1分析气候与生物对土壤形成的作用与影响 2简要分析我国西北干旱气候的形成原因. 3分析对比准平原和山麓面的形成过程. 4简述农业生态系统的特点. 5简述冰川对地理环境的影响 6简要分析地球自转的 ...
    本站小编 免费考研网 2015-07-01
  • 中科院寒旱所2007-1997硕士入学考试真题 [自然地理]
    自然地理学 1997年硕士研究生入学考试题 一、名词解释 1、沉积相与沉积韵律 2、气旋与反气旋 3、土壤与土地 4、径流系数与径流模数(写出单位) 5、生物群落与生态系统 二、回答问题 1、 季风环流是怎样形成的?简述热带季风气候、副热带季风气候和温带季风气候各自发育的区域和气候特点。(13分) 2、 自然带在空间 ...
    本站小编 免费考研网 2015-07-01
  • 中科院寒旱所2006自然地理学考博试题答案
    自然地理学 一、名词解释 1、季风 2、水循环 3、大气环流 4、洋流 5、生态系统 季风:大陆和海洋间的广大地区,以一年为周期、随着季节变化而方向相反的风系,称为季风。季风是海陆间季风环流的简称,它是由大尺度的海洋和大陆间的热力差异形成的大范围热力环流。夏季由海洋吹向大陆的风称为夏季风;冬季由大陆吹向海洋的 ...
    本站小编 免费考研网 2015-07-01
  • 中科院寒旱所考博地理名词解释(答案整理)
    名词解释: 1、季风(monsoon):是由于大陆及邻近海洋之间存在的温度差异而形成大范围盛行的、风向随季节有显著变化的风系,具有这种大气环流特征的风称为季风。 大陆和海洋间的广大地区,以一年为周期、随着季节变化而方向相反的风系,称为季风。季风是海陆间季风环流的简称,它是由大尺度的海洋和大陆间的热力差异形成 ...
    本站小编 免费考研网 2015-07-01