文档库 最新最全的文档下载
当前位置:文档库 › 数据结构作业题

数据结构作业题

数据结构作业题
数据结构作业题

1 简述下列术语:线性表,顺序表,链表。

答:线性表是最常用且最简单的一种数据结构,一个线性表是N个数据元素的有限序列。

顺序表是指用一组地址连续的储存单元依次存储线性表的数据元素。用这种方法存储的线性表简称顺序表。

链表是用一组任意的存储单元存储线性表中的数据元素。用这种方法存储的线性表简称线性链表。

2 何时选用顺序表,何时选用链表作为线性表的存储结构合适?各自的主要优缺点是什么?

答:线性表的逻辑顺序与物理顺序一致;数据元素之间的关系是以元素在计算机内“物理位置相邻”来体现。而存储链表中结点的一组任意的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。链表中结点的逻辑顺序和物理顺序不一定相同。

3 在顺序表中插入和删除一个结点平均需要移动多少个结点?具体的移动次数取决于哪两个因素?

答:在顺序表中插入和删除一个结点平均需要移动1个结点,具体移动次数取决于时间复杂和空间复杂程度。

4 链表所表示的元素是否有序?如有序,则有序性体现于何处?链表所表示的元素是否一定要在物理上是相邻的?有序表的有序性又如何理解?

答:链表元素的有序并不一定是值得有序,而是逻辑次序上的有序;链表中的元素并不需要物理位置上相邻,因为其逻辑联系已经在结点中包括了。

5 设顺序表L是递增有序表,试写一算法,将x插入到L中并使L仍是递增有序表。

答:using System;

using System.Collections.Generic;

using System.Collections;

using System.Text;

namespace test

{

class arrlist_test

{

public static ArrayList a = new ArrayList();

public static void main()

{

do{

currency.write("请写入下一个值");

a.Add(Console.ReadLine());

a.Sort();

}while(currency .choice ());

for (int i = 0; i < a.Count; i++)

{

Console.Write("\t" + a[i]);

}

}

}

}

6 写一求单链表的结点数目ListLength(L)的算法。

答:int i=0;

LinkNode *pa;

pa=L->next;

while(pa!=null) pa=pa->next,i++;

return i;

7 写一算法将单链表中值重复的结点删除,使所得的结果链表中所有结点的值均不相同。

答:v oid DeleteList ( LinkList L )

{

ListNode *p , *q , *s;

p=L-next;

while( p->next&&p->next->next)

{

q=p;

while (q->next)

if (p->data==q->next->data)

{s=q->next;q->next=s->next;free(s);

}

else q=q->next;

p=p->next;

}

}

8 写一算法从一给定的向量A删除值在x到y(x≤y)之间的所有元素(注意:x 和y是给定的参数,可以和表中的元素相同,也可以不同)。

答:#include

typedef int datatype;

#define maxsize 100

/*定义顺序表*/

typedef struct

{

datatype data[maxsize];

int last;

} SeqList;

/*初始化*/

void init_SeqList(SeqList *L)

{

L->last=-1;

}

/*输入顺序表*/

void input_SeqList(SeqList *L,int n)

{

int i;

L->last=0;//初始化

for(i=0;i

scanf("%d",&(L->data[i]));

L->last=L->last+n;

}

/*判断*/

int measure(SeqList *L,int x,int y,int n)

{

if ((L->data[0]>=L->data[n-1] && x>=L->data[n-1] && y<=L->data[0]) ||//是n-1 (L->data[0]<=L->data[n-1] && x>=L->data[0] && y<=L->data[n-1]))

return 1;

else return 0;

}

/*删除值*/

int delete_list(SeqList *L,int x,int y)

{

int i=0,j=0;

while (ilast)

{

/* if ((L->data[i]>=x) && (L->data[i]<=y))

distence++;

else L->data[i-distence]=L->data[i];*/

if(L->data[i]data[i]>y)

L->data[j++]=L->data[i];

i++;

}

//L->last-=distence;

L->last=j;

//printf("j=%d\n",j);

if (L->last==0)

{

printf("原表已为空表!");

return 0;

}

return 1;

}

/*输出元素*/

int output_SeqList(SeqList *L)

{

int i;

for (i=0;ilast;i++)

printf("%d ",L->data[i]);

puts("");

return(L->data[i]);

}

void main()

{

int s,x,y;

SeqList L;

init_SeqList(&L);

printf("请输入顺序表长度: ");

scanf("%d",&s);

printf("请输入顺序表: ");

input_SeqList(&L,s);

//output_SeqList(&L);

printf("输入x和y的值:");

scanf("%d,%d",&x,&y);

if (measure(&L,x,y,s))

{

delete_list(&L,x,y);

output_SeqList(&L);

}

else

printf("不存在x~y之间的元素!");

}

9 设A和B是两个按元素值递增有序的单链表,写一算法将A和B归并为按按元素值递减有序的单链表C,试分析算法的时间复杂度。

答:node *mergelink(node *p, node *q)

{

node *h, *r;

h = (node*) malloc (sizeof(node));

h->next = NULL;

r = h;

while (p != NULL && q != NULL)

{

if (p->data <= q->data)

{

r->next = p;

r = p;

p = p->next;

}

else

{

r->next = q;

r = q;

q = q->next;

}

}

if (p == NULL)

r->next = q;

if (q == NULL)

r->next = p;

p = h->next;

h = h->next;

free(p);

return h;

}

数据结构书面作业练习题

习题六树和二叉树6.1 单项选择题 (A) (B) (C) (D) 图8.7 4棵二叉树 1. 如图8.7所示的4棵二叉树,_ _不是完全二叉树。 图8.8 4棵二叉树 2. 如图8.8所示的4棵二叉树,__B_是平衡二叉树。 3. 在线索化二叉树中,t所指结点没有左子树的充要条件是B__o A. t —> left二NULL B. t —> ltag=1 C. t —> ltag=1 且t —> left=NULL D. 以上都不对 4. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说 法_B__ o

A.正确 B. 错误 5. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法 _A__。 A.正确 B. 错误 6. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法 _B_o A.正确 B. 错误 7. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为—B__o A. 2h B. 2h-1 C. 2h+1 D. h+1 a 8. 如图8.9所示二叉树的中序遍历序列 B o 图8.9 一棵二叉树 A. abcdgef B. dfebagc C. dbaefcg D. defbagc 9. 已知某二叉树的后序遍历序列是d abec,中序遍历序

列是debac,它的前序遍历 序列是D ___ 。 A. acbed B. decab C. deabc D. cedba 10. 设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是 B 。 A. a在b的右方 B. a在b的左方 C. a是b的祖先 D. a是b的子孙 11?假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结 点数为个。B A. 15 B. 16 C. 17 D. 47 12. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是D _____ 。 A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca 13. 二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、 小于其右孩子的值。这种说法__B__ o A.正确 B. 错误 14. 按照二叉树的定义,具有3个结点的二叉树有_。__种。 A. 3 B. 4 C. 5 D. 6 15. 一棵二叉树如图8.10所示,其中序遍历的序列为

数据结构书面作业练习题

书面作业练习题 李英龙 湖南科技大学数学与计算科学学院

内容简介 在习题部分,既有选择题、判断题,也有用图表解答的练习题、算法设计题或综合解答分析题。并且配有部分练习题的答案供学生自学、练习、参考。 目录 书面作业练习题 习题一绪论 -------------------------------------------------------------3 习题二顺序表示(线性表、栈和队列)-----------------------------------------6 习题三链表(线性表、栈和队列)---------------------------------------------9 习题四串-----------------------------------------------------------------12 习题五数组 --------------------------------------------------------------13 习题六树与二叉树 -------------------------------------------------------15 习题七图-----------------------------------------------------------------24 习题八查找---------------------------------------------------------------30 习题九排序---------------------------------------------------------------33

数据结构第二章课后习题题解

2.4已知顺序表L递增有序,试写一算法,将X插入到线性表的适当位置上,以保持线性表的有序性。 解: int InsList(SeqList *L,int X) { int i=0,k; if(L->last>=MAXSIZE-1) { printf("表已满无法插入!"); return(ERROR); } while(i<=L->last&&L->elem[i]last;k>=I;k--) L->elem[k+1]=L->elem[k]; L->elem[i]=X; L->last++; return(OK); } 2.5写一算法,从顺序表中删除自第i个元素开始的k个元素。 解: int LDel(Seqlist *L,int i,int k) { if(i=1||(i+k>L->last+1)) { printf("输入的i,k值不合法"); return(ERROR); } else if(i+k==L->last+2) { L->last=i-2; return OK; } else { j=i+k-1; while(j<=L->last) { elem[j-k]=elem[j]; j++; } L->last=L->last-k+1; return OK;

} } 2.6已知线性表中的元素(整数)以递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度(注意:mink和maxk是给定的两个变量,他们的值为任意的整数)。 解: int Delete(Linklist,int mink,int maxk) { Node *p,*q; p=L; while(p->next!=NULL) p=p->next; if(mink>=maxk||L->next->data>=maxk||mink+1=maxk) { printf("参数不合法!"); return ERROR; } else { while(p->next->data<=mink) p=p->next; q=p->next; while(q->datanext=q->next; free(q); q=p->next; } return OK; } } 2.7试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的储存空间将线性表(a1,a1,…,an)逆置为(an,an-1,…,a1)。 (1)以顺序表作存储结构。 解: int ReversePosition(SpList L) { int k,temp,len; int j=0; k=L->last; len=L->last+1; for(j;j

(完整版)数据结构练习题(含答案)

数据结构练习题 习题1 绪论 1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。 ① A.操作对象B.计算方法C.逻辑结构D.数据映象 ② A.存储结构B.关系C.运算D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。 ① A.算法B.数据元素C.数据操作D.数据对象 ② A.操作B.映象C.存储D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 4. 算法分析的目的是①,算法分析的两个主要方面是②。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。 2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。 3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 for (i=0;i

第一章+金属的晶体结构作业+答案

第一章金属的晶体结构 1、试用金属键的结合方式,解释金属具有良好的导电性、正的电阻温度系数、导热性、塑性和金属光泽等基本特性. 答:(1)导电性:在外电场的作用下,自由电子沿电场方向作定向运动。 (2)正的电阻温度系数:随着温度升高,正离子振动的振幅要加大,对自由电子通过的阻碍作用也加大,即金属的电阻是随温度的升高而增加的。 (3)导热性:自由电子的运动和正离子的振动可以传递热能。 (4) 延展性:金属键没有饱和性和方向性,经变形不断裂。 (5)金属光泽:自由电子易吸收可见光能量,被激发到较高能量级,当跳回到原位时辐射所吸收能量,从而使金属不透明具有金属光泽。 2、填空: 1)金属常见的晶格类型是面心立方、体心立方、密排六方。 2)金属具有良好的导电性、导热性、塑性和金属光泽主要是因为金属原子具有金属键的结合方式。 3)物质的原子间结合键主要包括金属键、离子键和共价键三种。 4)大部分陶瓷材料的结合键为共价键。 5)高分子材料的结合键是范德瓦尔键。 6)在立方晶系中,某晶面在x轴上的截距为2,在y轴上的截距为1/2;与z轴平行,则该晶面指数为(( 140 )). 7)在立方晶格中,各点坐标为:A (1,0,1),B (0,1,1),C (1,1,1/2),D(1/2,1,1/2),那么AB晶向指数为(ī10),OC晶向指数为(221),OD晶向指数为(121)。 8)铜是(面心)结构的金属,它的最密排面是(111 )。 9) α-Fe、γ-Fe、Al、Cu、Ni、Cr、V、Mg、Zn中属于体心立方晶格的有(α-Fe 、 Cr、V ),属于面心立方晶格的有(γ-Fe、Al、Cu、Ni ),属于密排六方晶格的有( Mg、Zn )。 3、判断 1)正的电阻温度系数就是指电阻随温度的升高而增大。(√) 2)金属具有美丽的金属光泽,而非金属则无此光泽,这是金属与非金属的根本区别。(×) 3) 晶体中原子偏离平衡位置,就会使晶体的能量升高,因此能增加晶体的强度。(× ) 4) 在室温下,金属的晶粒越细,则其强度愈高和塑性愈低。(×) 5) 实际金属中存在着点、线和面缺陷,从而使得金属的强度和硬度均下降。 (×) 6)体心立方晶格中最密原子面是{110},原子排列最密的方向也是<111> .(对) 7)面心立方晶格中最密的原子面是{111},原子排列最密的方向是<110>。 ( 对 ) 8)纯铁加热到912℃时将发生α-Fe向γ-Fe的转变,体积会发生膨胀。 ( 错 ) 9)晶胞是从晶格中任意截取的一个小单元。(错) 10)纯铁只可能是体心立方结构,而铜只可能是面心立方结构。 (错) 4、选择题 1)金属原子的结合方式是( C )

晶体结构分析的历史发展

晶体结构分析的历史发展 (一)X射线晶体学的诞生 1895年11月8日德国维尔茨堡大学物理研究所所长伦琴发现了X射线。自X射线发现后,物理学家对X射线进行了一系列重要的实验,探明了它的许多性能。根据狭缝的衍射实验,索末菲(Som-merfeld)教授指出,X射线如是一种电磁波的话,它的波长应当在1埃上下。 在发现X射线的同时,经典结晶学有了很大的进展,230个空间群的推引工作使晶体构造的几何理论全部完成。当时虽没有办法测定晶胞的形状和大小以及原子在晶胞中的分布,但对晶体结构已可臆测。根据当时已知的原子量、分子量、阿伏伽德罗常数和晶体的密度,可以估计晶体中一个原子或一个分子所占的容积,晶体中原子间距离约1—2埃。1912年,劳厄(Laue)是索末菲手下的一个讲师,他对光的干涉现象很感兴趣。刚巧厄瓦耳(P.Ewald)正随索末菲进行结晶光学方面的论文,科学的交流使劳厄产生了一种极为重要的科学思想:晶体可以用作X射线的立体衍射光栅,而X射线又可用作量度晶体中原子位置的工具。刚从伦琴那里取得博士学位的弗里德里克(W.Friedrich)和尼平(P.Knipping)亦在索末菲教授处工作,他们自告奋勇地进行劳厄推测的衍射实验。他们使用了伦琴提供的X射线管和范克罗斯(Von.Groth)提供的晶体,最先对五水合硫酸铜晶体进行了实验,费了很多周折得到了衍射点,初步证实了劳厄的预见。后来他们对辉锌矿、铜、氯化钠、黄铁矿、沸石和氯化亚铜等立方晶体进行实验,都得到了正面的结果,为了解释这些衍射结果,劳厄提出了著名的劳厄方程。劳厄的发现导致了X射线晶体学和X射线光谱学这二门新学科的诞生。 劳厄设计的实验虽取得了正面的结果,但X射线晶体学和X射线光谱学成为新学科是一些得力科学家共同努力的结果。布拉格父子(W.H.Bragg,W.L.Bragg)、莫塞莱(Moseley)、达尔文(Darwin)完成了主要的工作,通过他们的工作认识到X射线具有波粒二重性;X射线中除了连续光谱外,还有波长取决于阴极材料的特征光谱,发现了X射线特征光谱频率和元素在周期表中序数之间的规律;提出了镶嵌和完整晶体的强度公式,热运动使衍射线变弱的效应,发展了X射线衍射理论。W·L·布拉格在衍射实验中发现,晶体中显得有一系列原子面在反射X射线。他从劳厄方程引出了布拉格方程,并从KCl和NaCl的劳厄衍射图引出了晶体中的原子排列方式,W·L·布拉格在劳厄发现的基础上开创了X射线晶体结构分析工作。 伦琴在1901年由于发现X射线成为世界上第一个诺贝尔物理奖获得者,而劳厄由于发现X射线的晶体衍射效应也在1914年获得了诺贝尔物理奖。 (二)X射线晶体结构分析促进了化学发展 W·L·布拉格开创的X射线晶体结构分析工作把X射线衍射效应和化学联系在一起。当NaCl等晶体结构被测定后,使化学家恍然大悟,NaCl的晶体结构中没有用NaCl表示的分子集团,而是等量的Na+离子和Cl-离子棋盘交叉地成为三维结构。当时X射线结构分析中的位相问题是通过强度数据和强度公式用试差法来解决的,只能测定含二三十个参数的结构,这些结构虽简单,但使无机物的结构化学有了真正的开始。 从1934年起,帕特孙(Patterson)法和其他应用付里叶级数的方法相继提出,位相问题可通过帕特孙函数找出重原子的位置来解决,使X射线晶体结构分析摆脱了试差法。1940年后计算机的使用,使X射线晶体结构分析能测定含重原子的复杂的化合物的结构。X射线晶体结构分析不但印证了有机物的经典结构化学,也为有机物积累了丰富的立体化学数据,

数据结构第2章基础习题 作业

第二章习题 一判断题 1.线性表的逻辑顺序与存储顺序总是一致的。× 2.顺序存储的线性表可以按序号随机存取。 3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。× 4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。 5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。× 6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。 7.线性表的链式存储结构优于顺序存储结构。 8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。×9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。 10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。× 11.线性表中每个元素都有一个直接前驱和一个直接后继。(×) 12.线性表中所有元素的排列顺序必须由小到大或由小到小。(×) 13.静态链表的存储空间在可以改变大小。(×) 14.静态链表既有顺序存储结构的优点,又有动态链表的优点。所以它存取表中第i个元素的时间与i无关。(×) 15.静态链表中能容纳元素个数的最大数在定义时就确定了,以后不能增加。() 16.静态链表与动态链表的插入、删除操作类似,不需要做元素的移动。() 17.线性表的顺序存储结构优于链式结构。(×) 18.在循环单链表中,从表中任一结点出发都可以通过前后的移动操作扫描整个循环链表。(×) 19.在单链表中,可以从头结点开始查找任何一个结点。() 20.在双链表中,可以从任何一结点开始沿同一方向查找到任何其他结点。(×) 二单选题 (请从下列A,B,C,D选项中选择一项) 1.线性表是( ) 。 (A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空; (C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。 ,在任何位置上插入或删除操作都是等概率的。插n.对顺序存储的线性表,设其长度为2. 入一个元素时平均要移动表中的()个元素。 (A) n/2 (B) n+1/2 (C) (n -1)/2 (D) n

数据结构复习题及答案

复习题(一) 一.填空题(每空1分,共15分) 1.一个算法的效率可分为___________________效率和___________________效率。 2.__________________是被限定为只能在表的一端进行插入运算,在表的另一端 进行删除运算的线性表。 3.设S=“A;/document/Mary.doc”,则strlen(S)= _______________,“/”的字符定位 的位置为_______________。 4.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列 序为主序顺序存储,则元素a[32,58]的存储地址为_______________。 5.一棵深度为6的满二叉树有_______________个分支结点和_______________个 叶子。 6.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是。 7.设有一稀疏图G,则G采用存储较省空间。 8.快速排序算法是对算法的一种改进。 9.在数据的存放无规律而言的线性表中进行检索的最佳方法 是。 10.大多数排序算法都有两个基本的操作: 和。 11.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重 新排列,则:快速排序一趟扫描的结果是。 二.选择题(每题2分,共30分) ()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: (A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构 ()2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要

晶体结构专题练习解析

晶体结构专题练习 1、(2000初赛)最近发现一种由钛原子和碳原子构成的气态团簇分子, 如右图所示,顶角和面心的原子是钛原子,棱的中心和体心的原子是碳原 子,它的化学式是______。 2、(2005初赛)为纪念1905年爱因斯坦连续发表6篇论文 导致物理学大变革100周年,今年被定为国际物理年。本题涉 及的“热电效应”机理也是爱因斯坦首先阐释的,如图是化学 家合成的能实现热电效应的一种晶体的晶胞模型。图中的大原 子是稀土原子,如镧;小原子是周期系第五主族元素,如锑; 中等大小的原子是周期系VIII 族元素,如铁。按如上结构图 写出这种热电晶体的化学式。给出计算过程。提示:晶胞的6个面的原子数相同。设晶体中锑的氧化态为-1,镧的氧化态为+3,问:铁的平均氧化态多大? 3、(2004初赛)2004年7月德俄两国化学家共同宣 布,在高压下氮气会发生聚合得到高聚氮, 这种高聚氮 的N-N键的键能为160 kJ/mol (N2的键能为942 kJ/mol), 晶体结构如图所示。在这种晶体中,每个氮原子的配位 数为;按键型分类时,属于晶体。这种 固体的可能潜在应用是,这是因 为:。 4、(1998初赛·改编)钨酸盐是一类重要的钨化合物。试回答下列问题: (1)Na2WO4晶胞中,O2-以立方最紧密堆积排列,每个立方晶胞中有32个O2-,W6+占据四面体空隙,Na+占据八面体空隙,构成尖晶石结构。W6+占据四面体空隙的分数是多

少?Na+占据八面体空隙的分数是多少? (2)钨酸钠Na2WO4和金属钨在隔绝空气的条件下加热得到一种具有金属光泽的、深色的、有导电性的固体,化学式Na x WO3,用X射线衍射法测得这种固体的立方晶胞的边长a=3.80×10-10 m,用比重瓶法测得它的密度为d=7.36 g/cm3。已知相对原子质量:W~183.85,Na~22.99,O~16.00,阿伏加德罗常数N A=6.022×1023 mol-1。 ①求这种固体的组成中的x值(2位有效数字),给出计算过程。 ②Na x WO3的晶胞中,W占据立方体的顶点,O2-占据全部的棱心,Na+占据体心位置。写出表示W价态的结构式,并指出Na x WO3易导电的原因。 5、(2008初赛) 1963年在格陵兰Ika峡湾发现一种水合碳酸钙矿物ikaite。它形成于冷的海水中,温度达到8℃即分解为方解石和水。1994年的文献指出:该矿物晶体中的Ca2+离子被氧原子包围,其中2个氧原子来自同一个碳酸根离子,其余6个氧原子来自6个水分子。它的单斜晶胞的参数为:a=887 pm,b=823 pm,c=1102 pm,β=110.2°,密度d=1.83 g/cm3,Z=4。 (1)通过计算得出这种晶体的化学式。 (2)研究了这种晶体在加压下受热膨胀体积增大的情形,并与冰及钙离子配位数也是8的二水合石膏晶体(gypsum)作了对比,结果如下图所示(纵坐标为相对体积):

浅谈有关晶体结构的分析和计算

浅谈有关晶体结构的分 析和计算 Revised as of 23 November 2020

浅谈有关晶体结构的分析和计算 摘要:晶体结构的分析和计算是历年全国高考化学试卷中三个选做题之一,本文从晶体结构的粒子数和化学式的确定,晶体中化学键数的确定和晶体的空间结构的计算等方面,探讨有关晶体结构的分析和计算的必要性。 关键词:晶体、结构、计算、晶胞 在全国统一高考化学试卷中,有三个题目是现行中学化学教材中选学内容,它们分别《化学与生活》、《有机化学基础》和《物质结构与性质》。虽然三个题目在高考时只需选做一题,由于是选学内容,学生对选学内容往往重视不够,所以在高考时学生对这部分题目得分不够理想。笔者对有关晶体结构的分析和计算进行简单的归纳总结,或许对学生学习有关晶体结构分析和计算有所帮助,若有不妥这处,敬请同仁批评指正。 一、有关晶体结构的粒子数和化学式确定 (一)、常见晶体结构的类型 1、原子晶体 (1)金刚石晶体中微粒分布: ①、每个碳原子与4个碳原子以共价键结合,形成正四面体结构。 ②、键角均为109°28′。 ③、最小碳环由6个碳组成并且六个碳原子不在同一平面内。 ④、每个碳原子参与4条C-C 键的形成,碳原子与C-C 键之比为1:2。 (2)二氧化硅晶体中微粒分布 ①、每个硅原子与4个氧原子以共价键结合,形成正四面体结构。 ②、每个正四面体占有1个Si ,4个“2 1氧”,n(Si):n(O)=1:2。 ③、最小环上有12个原子,即:6个氧原子和6个硅原子.

2、分子晶体:干冰(CO 2)晶体中微粒分布 ①、8个CO 2分子构成立方体并且在6个面心又各占据1个CO 2分子。 ②、每个CO 2分子周围等距离紧邻的CO 2分子有12个。 3、离子晶体 (1)、NaCl 型晶体中微粒分布 ①、每个Na +(Cl -)周围等距离且紧邻的Cl -(Na +)有6个。每 个Na +周围等距离紧邻的Na +有12个。 ②、每个晶胞中含4个Na +和4个Cl -。 (2)、CsCl 型晶体中微粒分布 ①、每个Cs +周围等距离且紧邻的Cl -有8个,每个Cs +(Cl -) 周围等距离且紧邻的Cs +(Cl -)有6个。 ②、如图为8个晶胞,每个晶胞中含有1个Cs +和1个Cl - 。 3、金属晶体 (1)、简单立方晶胞:典型代表Po ,空间利用率52%,配位数为6 (2)、体心立方晶胞(钾型):典型代表Na 、K 、Fe ,空间利用率60%,配位数为8。 (3)、六方最密堆积(镁型):典型代表Mg 、Zn 、Ti ,空间利用率74%,配位数为12。 (4)、面心立方晶胞(铜型):典型代表Cu 、Ag 、Au ,空间利用率74%,配位数为12。 (二)、晶胞中微粒的计算方法——均摊法 1、概念:均摊法是指每个图形平均拥有的粒子数目,如某个粒子为n 个晶胞所共有,则 该粒子有n 1属于一个晶胞。 2、解题思路:首先应分析晶胞的结构(该晶胞属于那种类型),然后利用“均摊法”解题。

(完整版)数据结构课后习题及解析第二章

第二章习题 1.描述以下三个概念的区别:头指针,头结点,首元素结点。 2.填空: (1)在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。 (2)在顺序表中,逻辑上相邻的元素,其物理位置相邻。在单链表中,逻辑上相邻的元素,其物理位置相邻。 (3)在带头结点的非空单链表中,头结点的存储位置由指示,首元素结点的存储位置由指示,除首元素结点外,其它任一元素结点的存储位置由指示。3.已知L是无表头结点的单链表,且P结点既不是首元素结点,也不是尾元素结点。按要求从下列语句中选择合适的语句序列。 a. 在P结点后插入S结点的语句序列是:。 b. 在P结点前插入S结点的语句序列是:。 c. 在表首插入S结点的语句序列是:。 d. 在表尾插入S结点的语句序列是:。 供选择的语句有: (1)P->next=S; (2)P->next= P->next->next; (3)P->next= S->next; (4)S->next= P->next; (5)S->next= L; (6)S->next= NULL; (7)Q= P; (8)while(P->next!=Q) P=P->next; (9)while(P->next!=NULL) P=P->next; (10)P= Q; (11)P= L; (12)L= S; (13)L= P; 4.设线性表存于a(1:arrsize)的前elenum个分量中且递增有序。试写一算法,将X插入到线性表的适当位置上,以保持线性表的有序性。 5.写一算法,从顺序表中删除自第i个元素开始的k个元素。 6.已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度(注意:mink和maxk是给定的两个参变量,它们的值为任意的整数)。 7.试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1, a2..., an)逆置为(an, an-1,..., a1)。 (1)以一维数组作存储结构,设线性表存于a(1:arrsize)的前elenum个分量中。 (2)以单链表作存储结构。 8.假设两个按元素值递增有序排列的线性表A和B,均以单链表作为存储结构,请编写算法,将A表和B表归并成一个按元素值递减有序排列的线性表C,并要求利用原表(即A 表和B表的)结点空间存放表C。

晶体结构练习题答案

晶体结构练习题 一、(2005 全国初赛)下图是化学家合成的能实现热电效应的一种 晶体的晶胞模型。图中的大原子是稀土原子,如镧;小原子是周期 系第五主族元素,如锑;中等大小的原子是周期系VIII 族元素,如 铁。按如上结构图写出这种热电晶体的化学式。给出计算过程。提 示: 晶胞的 6 个面的原子数相同。设晶体中锑的氧化态为-1,镧的 氧化态为+3,问:铁的平均 氧化态多大? 解析:晶胞里有2个La原子(处于晶胞的顶角和体心); 有8个Fe 原子(处于锑形成的八面体的中心);锑八面体是共 顶角相连的,平均每个八面体有6/2= 3 个锑原子,晶 胞中共有8 个八面体,8x3=24 个锑原子;即:La2Fe8Sb24。 答案:化学式LaFe4Sb12 铁的氧化态9/4 = 2.25 二、(2004 年全国初赛)最近发现,只含镁、镍和碳三种元素的晶 体竟然也具有超导性。鉴于这三种元素都是常见元素,从而引起广 泛关注。该晶体的结构可看作由镁原子和镍原子在一起进行(面 心)立方最密堆积(ccp ),它们的排列有序,没有相互代换的现象 1) (在(面心)立方最密堆积-填隙模型中,八面体空隙与堆积球的比例为1︰1,在如图晶胞中,八面体空隙位于体心位置和所有棱的中心位置,它们的比例是1︰3,体心位置的八面体由镍原子构成,可填入碳原子,而棱心位置的八面体由2个镁原子和 4 个镍原子一起构成,不填碳原子。) (2)MgCNi 3(化学式中元素的顺序可不同,但原子数目不能错)。 三、将Nb2O5 与苛性钾共熔后,可以生成溶于水的铌酸钾,将其慢慢浓缩可以得到晶体 K p[Nb m O n] ·16H2O,同时发现在晶体中存在[Nb m O n]p-离子。该离子结构由6个NbO 6正八面体构成的。每个NbO6八面体中的6个氧原子排布如下:4个氧原子分别与4个NbO 6八面体共顶点;第5个氧原子与5个八面体共享一个顶点;第6个氧原子单独属于这个八面体的。列式计算并确定该晶体的化学式。计算该离子结构中距离最大的氧原子间的距离是距离最短的铌原子间距离的多少倍? 解析:这是一个涉及正八面体堆积的问题,我们先根据题意来计算。对一个铌氧八面体,有一个氧原子完全属于这个八面体,有四个氧原子分别与一个八面体共用氧原子,即属于这个八面体的氧原子是1/2 个,另一个氧原子是六个八面体共用的,自然是1/6 了。故对一个铌而言,氧原子数为1+4×1/2 +1/6 =19/6 。

几种常见晶体结构分析

几种常见晶体结构分析文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

几种常见晶体结构分析 河北省宣化县第一中学 栾春武 邮编 075131 栾春武:中学高级教师,张家口市中级职称评委会委员。河北省化学学会会员。市骨干教师、市优秀班主任、模范教师、优秀共产党员、劳动模范、县十佳班主任。 联系电话: E-mail : 一、氯化钠、氯化铯晶体——离子晶体 由于离子键无饱和性与方向性,所以离子晶体中无单个分子存在。阴阳离子在晶体中按一定的规则排列,使整个晶体不显电性且能量最低。离子的配位数分析如下: 离子数目的计算:在每一个结构单元(晶胞)中,处于不同位置的微粒在该单元中所占的份额也有所不同,一般的规律是:顶点上的微粒属于该 单元中所占的份额为18,棱上的微粒属于该单元中所占的份额为1 4,面上 的微粒属于该单元中所占的份额为1 2,中心位置上(嚷里边)的微粒才完 全属于该单元,即所占的份额为1。 1.氯化钠晶体中每个Na +周围有6个Cl -,每个Cl -周围有6个Na +,与一个Na +距离最近且相等的Cl -围成的空间构型为正八面体。每个Na +周围与其最近且距离相等的Na +有12个。见图1。 图1 图2 NaCl

晶胞中平均Cl-个数:8×1 8 + 6× 1 2 = 4;晶胞中平均Na+个数:1 + 12×1 4 = 4 因此NaCl的一个晶胞中含有4个NaCl(4个Na+和4个Cl-)。 2.氯化铯晶体中每个Cs+周围有8个Cl-,每个Cl-周围有8个Cs+,与一个Cs+距离最近且相等的Cs+有6个。 晶胞中平均Cs+个数:1;晶胞中平均Cl-个数:8×1 8 = 1。 因此CsCl的一个晶胞中含有1个CsCl(1个Cs+和1个Cl-)。 二、金刚石、二氧化硅——原子晶体 1.金刚石是一种正四面体的空间网状结构。每个C 原子以共价键与4个C原子紧邻,因而整个晶体中无单 个分子存在。由共价键构成的最小环结构中有6个碳原 子,不在同一个平面上,每个C原子被12个六元环共用,每C—C键共6 个环,因此六元环中的平均C原子数为6× 1 12 = 1 2 ,平均C—C键数为 6×1 6 = 1。 C原子数: C—C键键数= 1:2; C原子数: 六元环数= 1:2。 2.二氧化硅晶体结构与金刚石相似,C被Si代替,C与C之间插 氧,即为SiO 2晶体,则SiO 2 晶体中最小环为12环(6个Si,6个O), 图3 CsCl 晶 图4 金刚石晶

数据结构课程作业

数据结构课程作业_A 交卷时间:2017-08-09 10:08:51 一、单选题 1. (7分)设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置脚注(10)表示用10进制表示。 A. 688 B. 678 C. 692 D. 696 纠错 得分: 7 知识点:第五章 展开解析 答案 C 解析第五章第二节综合题目 2. (7分)若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 纠错 得分: 0 知识点:第九章 展开解析 答案 D 解析第九章第一节有序表的查找

(7分)设某完全无向图中有n个顶点,则该完全无向图中有()条边。 A. n(n-1)/2 B. n(n-1) C. n2 D. n2-1 纠错 得分: 7 知识点:第七章 展开解析 答案 A 解析第七章第一节综合题目 4. (7分)若在任意一棵二叉树中,有n0个叶子结点,有n2个度为2的结点,则:n0=_____ A. n2+1 B. n2-1 C. n2+2 D. n2-2 纠错 得分: 7 知识点:第六章 展开解析 答案 A 解析第六章第二节二叉树的性质 5. (7分)栈的插入和删除操作在()进行。 A. 栈顶 B. 栈底 C. 任意位置 D. 指定位置

得分: 7 知识点:第三章 展开解析 答案 A 解析第三章第一节栈的表示和实现 6. (7分)设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 A. 25 B. 10 C. 7 D. 1 纠错 得分: 7 知识点:第九章 展开解析 答案 B 解析第九章第一节有序表的查找 7. (7分)设某棵二叉树的高度为10,则该二叉树上叶子结点最多有()。 A. 20 B. 256 C. 512 D. 1024 纠错 得分: 7 知识点:第六章 展开解析 答案 C 解析第六章第六节二叉树的性质

材料科学基础练习题

练习题 第三章晶体结构,习题与解答 3-1 名词解释 (a)萤石型和反萤石型 (b)类质同晶和同质多晶 (c)二八面体型与三八面体型 (d)同晶取代与阳离子交换 (e)尖晶石与反尖晶石 答:(a)萤石型:CaF2型结构中,Ca2+按面心立方紧密排列,F-占据晶胞中全部四面体空隙。 反萤石型:阳离子和阴离子的位置与CaF2型结构完全相反,即碱金属离子占据F-的位置,O2-占据Ca2+的位置。 (b)类质同象:物质结晶时,其晶体结构中部分原有的离子或原子位置被性质相似的其它离子或原子所占有,共同组成均匀的、呈单一相的晶体,不引起键性和晶体结构变化的现象。 同质多晶:同一化学组成在不同热力学条件下形成结构不同的晶体的现象。 (c)二八面体型:在层状硅酸盐矿物中,若有三分之二的八面体空隙被阳离子所填充称为二八面体型结构三八面体型:在层状硅酸盐矿物中,若全部的八面体空隙被阳离子所填充称为三八面体型结构。 (d)同晶取代:杂质离子取代晶体结构中某一结点上的离子而不改变晶体结构类型的现象。 阳离子交换:在粘土矿物中,当结构中的同晶取代主要发生在铝氧层时,一些电价低、半径大的阳离子(如K+、Na+等)将进入晶体结构来平衡多余的负电荷,它们与晶体的结合不很牢固,在一定条件下可以被其它阳离子交换。 (e)正尖晶石:在AB2O4尖晶石型晶体结构中,若A2+分布在四面 体空隙、而B3+分布于八面体空隙,称为正尖晶石; 反尖晶石:若A2+分布在八面体空隙、而B3+一半分布于四面体空 隙另一半分布于八面体空隙,通式为B(AB)O4,称为反尖晶石。 3-2 (a)在氧离子面心立方密堆积的晶胞中,画出适合氧离子位 置的间隙类型及位置,八面体间隙位置数与氧离子数之比为若干? 四面体间隙位置数与氧离子数之比又为若干? (b)在氧离子面心立方密堆积结构中,对于获得稳定结构各需何 种价离子,其中: (1)所有八面体间隙位置均填满; (2)所有四面体间隙位置均填满; (3)填满一半八面体间隙位置; (4)填满一半四面体间隙位置。 并对每一种堆积方式举一晶体实例说明之。 解:(a)参见2-5题解答。1:1和2:1 (b)对于氧离子紧密堆积的晶体,获得稳定的结构所需电价离子 及实例如下: (1)填满所有的八面体空隙,2价阳离子,MgO; (2)填满所有的四面体空隙,1价阳离子,Li2O; (3)填满一半的八面体空隙,4价阳离子,TiO2; (4)填满一半的四面体空隙,2价阳离子,ZnO。 3-3 MgO晶体结构,Mg2+半径为0.072nm,O2-半径为0.140nm,计算MgO晶体中离子堆积系数(球状离子所占据晶胞的体积分数);计算MgO的密度。并说明为什么其体积分数小于74.05%?

数据结构作业

数据结构习题 第一章绪论 1.6 在程序设计中,常用下列三种不同的出错处理方式: 1) 用exit语句终止执行并报告错误; 2) 以函数的返回值区别正确返回或错误返回; 3) 设置一个整形变量的函数参数以区别正确返回或某种错误返回。 试讨论这三种方法各自的优缺点。 1.7 在程序设计中,可采用下列三种方法实现输出和输入: 1) 通过scanf和printf语句; 2) 通过函数的参数显示传递; 3) 通过全局变量隐式传递。 试讨论这三种方法的优缺点。 1.8 设n为正整数。试确定下列各程序段中前置以记号@的语句的频度: 5) for (i = 1; i <= n; i++ ) { for (j = 1; j <= i; j++) { for (k = 1; k <= j; k++) { @ x += delta; } } } 答案:n*(n+1)*(n+2) =1+(1+2)+(1+2+3)+...+(1+2+3+...+n) =∑ =+ n i i i 1 2 / )1 ( * =1/2*∑ =+ n i i i i 1 * =n*(n+1)*(2n+1)/12 +n*(n+1)/4 =n*(n+1)*(n+2)/6 7) x = n; //n是不小于1的常数 y = 0; while (x >= (y + 1) * (y + 1)) { @ y++; } 答案:n向下取整 8) x = 91; y = 100; while (y > 0) { @ if (x > 100) { x -= 10; y--;}

else { x++; } } 答案:if 执行次数为1100, if 判断内部执行为100次 1.19 试编写算法,计算i!·2i (i = 0, 1, …, n-1)的值并分别存入数组a[arrsize]的各个分量中。假设计算机中允许的整数最大值为MAXINT ,则当n > arrsize 或对某个k (0 ≤ k ≤ n-1)使k!·2k > MAXINT 时,应按出错处理。注意选择你认为较好的出错处理方法。 1.20 试编写算法求一元多项式∑==n i i i x a x 0n )(P 的值P n (x 0),并确定算法中每一语句的执行 次数和整个算法的时间复杂度。注意选择你认为较好的输入和输出方法。本题的输入为a i (i=0, 1, …, n )、x 0和n ,输出为P n (x 0)。

数据结构练习题及

数据结构练习题及参考答案

《数据结构》练习题 一、解答题(共50分) 1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所 请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算 WPL。 2.(8分)若一棵二叉树中序遍历和后序遍历序列分别为: DBEHGAFIC和DHGEBIFCA。试画出这棵二叉树,并写出其 先序遍历和层序遍历序列。 3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的 顶点表按字母a、b、c、d、e、f、g、h的顺序依次存储,邻接表 的边表结点按顶点的下标由小到大链接)。请画出其邻接表,并 写出从顶点f出发,分别进行深度和广度优先遍历的序列,写出用Prime方法从顶点c 开始产生最小生成树的边的序列。 4.(8分)已知键值序列为(44,39,67,25,52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。 ⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是()。 ⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进 行排序,第一趟的排序结果是()。

二、完善程序(共20分,每空2分) 1.假设一组递减有序的原始数据存储在数组r中,存放元素的下标下限为low,下标上限为high,以下是在数组中查找数值为k的折半查找算法。请填空完善程序。 int BinSearch(int r[ ], int low,int high,int k) { int l,h,m; l= low; h= high; while ( ⑴) { m= ⑵; if (k < r[m]) ⑶; else if (k > r[m]) ⑷; else return m; } return 0; } 2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。请填空,完善程序。 int Partition(int r[ ], int first, int end) { int i,j,t; i=first; j=end; //初始化 while ( ⑸) { while (i

相关文档
相关文档 最新文档