数据结构小问题
TFTTF TTFTT FTFTT
答案是我自己做的,仅供参考,哪里有错,请不吝指正
选择排序,特点是:排序总是从第一位开始,与起始位无关;
插入排序,是把待排序的元素 L(i) 取出,放到辅助空间 S 中,(s为我定义的名字,可以为其他任何名字),然后 S(即L(i)) 依次与 L(--i) 比较,满足插入条件,就直接插入到当前位置,不再跟下面的元素比较;它显然能很快找到离 i 位置最近的插入点(该插入点离i很接近,即题中说的情况);
快速排序,在数据基本无序的情况下最快
typedef struct
{
elemtype elem[MAXSIZE];
int length;
} Sqlist;
int DeleteK(Sqlist &a, int i, int k) // 结构名 Sqlist 而不是 SqList 大小写区分的
{
//从顺序表a中删除第i个元素起的K个元素
if (i<1 || k<0 || i+k>a.length)
return 0;
else
{
for(j=i;j<a.length-k;j++) // 因为要操作的是 k个数据,所以 要前多的是 a.length-k-j个数据。就是 从i 到 a.length-k
{
a. elem [j-1]=a. elem [j+k-1]; // 你不是要删除第i个元素起的K个元素 应该是 这样吧? 把 第i+k后的值前移 。这个 L 变量从何而来呢?? 应该是 a 吧??
a.length--; // a.length--; 应该是在 for 语句里的吧?
}
}
return 1;
}
没有测试环境,只能看语法判断
你给出的代码存在错误。我按你的意思,写了一段代码。给你参考一下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct str* pstr;
struct str //string 用于储存文章中的每一句
{
char string_in[20];
short int len;
}a;
typedef struct node* pnode;//定义一个指向该结构体的的指针类型
struct node
{
pstr ptstr;//ptstr :point to str
pnode ptnnode;//ptnnode :point to next node
}firstnode;//头节点
void makeup_str(pnode s)//传递过来的是头结点
{
s->ptstr=(pstr)malloc(sizeof(struct str));//使s->ptstr指向一个存在的空间(分配空间)
gets(s->ptstr->string_in);
s->ptstr->len=strlen(s->ptstr->string_in);
while(s->ptstr->len!=0)//依据上一次输入的字符串是不是空串来决定是否需要再新建节点
{
s->ptnnode=(pnode)malloc(sizeof(struct node));//新建一个节点
s=s->ptnnode;//使s指向原来s指向的下一个节点,主要目的是为了方便处理
s->ptnnode=NULL;//可以不要的,不影响程序运行,但我习惯了
s->ptstr=(pstr)malloc(sizeof(struct str));//使s->ptstr指向一个存在的空间(分配空间)
gets(s->ptstr->string_in);
s->ptstr->len=strlen(s->ptstr->string_in);
}
}
//int isempty(pstr s) //没有用上,主要是因为str结构中有一个记录字符串长度的成员。len==0就为空
//{
// if(s->len==0)return 1;
// else return 0;
//}
void output(pnode s)//……你懂的……文章输出
{
while(s->ptstr->len!=0)
{
printf("%s\n",s->ptstr->string_in);
s=s->ptnnode;
}
}
void main()
{
firstnode.ptnnode=NULL;
firstnode.ptstr=NULL;
printf("请输入你的文章。\n");
printf("注意:每句长度不能超过20个字节。键入空串可退出文章的输入。\n\n");
makeup_str(&firstnode);
printf("这是你输入的文章。\n\n");
output(&firstnode);
}
强烈建议你学会调试程序。其它的不多说,只说多一句:学数据结构要多动手。
数据结构的一些小问题
内存中的指定单元地址永远是固定的 这个是由于内存的物理属性决定的 和数据结构没有关系 应该是计算机组成原理或者计算机体系结构研究的问题 你可以去看看那些方面分书~~~感觉每个数据应该还有个存储地址的空间.很不幸 这个感觉是错的~~内存中只有存放数据的地方 没有存放地址的地方 内存的地址是由内存的物理结构确...
据细胞结构图回答问题:(1)图中属于植物细胞的是___图,属于动物细胞的是...
(1)由动物细胞和植物细胞的结构示意图可知动物细胞具有细胞膜、细胞质、细胞核、线粒体等结构;植物细胞具有细胞壁、细胞膜、细胞质、细胞核、液泡、线粒体、叶绿体等结构.所以说植物细胞有而动物细胞没有的是细胞壁、叶绿体、液泡.乙图中的细胞结构是:A细胞壁,B细胞膜,C细胞核,D细胞质,F叶...
根据原子结构,回答下列问题:①次外层上的电子数是最外层上的电子数的...
最外层电子数为6,为O原子,其电子式为 ,原子结构示意图为 ,故答案为: ; ;②最外层为M层且和最内层电子数相等的原子,则M层电子数为2,则M为Mg,其电子式为 ,其阳离子结构示意图为 ,
结构设计规范中常规问题?
7.筒中筒结构中的“外框筒”的结构特点,受力特点是什么?答:外框筒由柱距为2.0~3.0m的密排柱和宽梁组成。筒中筒结构中,剪力墙内筒截面面积较大,它承受大部分的水平剪力,外框筒柱承受的剪力很小;而水平力产生的倾覆力矩,则绝大部分由框筒柱的轴向力所形成的总弯矩来平衡,剪力墙和外框筒柱承受的剪力很小。...
根据关节结构示意图,回答下列问题:(1)填出结构名称:1___,2___,3...
(1)关节是指骨与骨之间能够活动的连接,一般由关节面、关节囊和关节腔三部分组成.由关节的模式图可知:1关节头,2关节软骨,3关节窝,4关节囊,5关节腔.(2)关节软骨能够减少骨与骨之间的摩擦,缓冲运动时的震荡.(3)关节囊包绕着整个的关节,连接相邻的两骨,壁的内表面能分泌滑液.在关节...
据枝芽结构图回答问题:(1)写出图中标号的名称[1]___[2]___[3...
由图可知1是生长点有很强的分裂增生能力属于分生组织,可以使芽轴不断伸长;2是芽原基将来发育成主干上的B侧芽,进而发育成侧枝;3是叶原基将来发育成幼叶,在芽生长展开后,会发育成叶;4是幼叶将来发育成A叶;5是芽轴将来发育成C茎.故答案为:(1)生长点;芽原基;叶原基;幼叶;芽轴(...
请据细菌结构示意图回答问题.(1)请填出细菌的结构名称;①___②...
(1)由分析可知:①DNA、②细胞膜、③细胞壁、④荚膜、⑤细胞质、⑥鞭毛.(2)在细菌的结构示意图中,鞭毛的作用是帮助细菌运动.(3)当细胞壁增厚的时候,细菌能够形成一个椭圆形的休眠体,叫做芽孢,以抵抗不良环境.(4)细菌的基本结构有细胞壁、细胞膜、细胞质和DNA集中的区域,没有成形的...
建筑结构设计问题及注重事项?
(4)由于某些原因造成梁或过粱等截面较大时应验算构件的最小配筋率,这也是较容易忽略的问题。(5)出屋面的楼电梯间不得采用砖混结构,避免一栋建筑中混合采用不同的结构体系。(6)框架结构中的电梯井壁宜采用烧结页岩砖砌筑,但不能采用砖墙承重。结构布置时可考虑采用每层的梁承担每层的墙体荷载。楼梯四角应加强...
根据下列粒子结构示意图回答问题:(1)代表原子结构示意图的是...
(1)A、B、D,质子数=核外电子数,为原子.(2)若粒子的最外层电子数为8(氦为2个),则属于相对稳定结构,C、D的最外层电子数均为8,均属于相对稳定结构.(3)根据决定元素种类的是核电荷数(即核内质子数),因为BC的核内质子数相同,所以BC属于同种元素的粒子.(4)决定元素化学性质的...
急急急!!!很简单的结构问题,帮忙解决一下
5m^2 根据公式:N=0.9*ψ*(fc*A+fs'*As'),求得钢筋面积As'=3696m^2,可配8Φ25的二级钢筋。配筋率3927\/96162.5=4.1%>3%,应该以A-As'代替A重新计算,求得实际可承受的N=2276KN>1900KN,配筋合适。以上配筋是不考虑配置螺旋箍筋对砼的加强作用,如要考虑,按规范公式计算。
游选复方:[答案] 9,4,2,3
且末县15964367498: 数据结构小问题判断题( )1、算法分析的两个主要方面是空间复杂度和时间复杂度.( )2、线性表的链式存储结构优于顺序存储结构.( )3、栈和队列是两种... - ?
游选复方:[答案] TFTTF TTFTT FTFTT 答案是我自己做的,仅供参考,哪里有错,请不吝指正
且末县15964367498: 数据结构的几个小问题?
游选复方:1.<1>.你说的这个队列是循环队列.从你的写法可以看出是基于链表实现的.循环队列的销毁方法是将Q.front和Q.rear都置0,然后释放队列结构体. <2>.同上. <3>.Q.rear指向队尾.rear->next指向队头.也就是说,队尾的下一个元素就是队头...
且末县15964367498: 数据结构的小问题?
游选复方: s{ int 可以根据地形和各种环境的数量选择 1,2,3,4 等字节的整数t 卡片 m 事件 } t{ char 卡片编号 char 0代表未翻开, 大于0代表翻开 } m{ char 事件编号 char 0代表主动, 大于0代表被动 } size=20*20=400? 一个格子一个字节? 如果真要一个格子一个字节的话, 使用位操作, 一个字节8位 char[]使用数组下标, 每个数组下标记录一个格子数据的特殊指针, 由于一个指针4个字节, 所以需要经过特殊处理才能弄成一个字节, 调用的时候, 还原, 操纵指针
且末县15964367498: 数据结构小问题 帮忙解释下1、在所有排序方法中,关键字比较次数与记录的初始排列次序无关的是( D ). A.希尔排序 B.起泡排序 C.插入排序 D.选择排序... - ?
游选复方:[答案] 选择排序,特点是:排序总是从第一位开始,与起始位无关;插入排序,是把待排序的元素 L(i) 取出,放到辅助空间 S 中,(s为我定义的名字,可以为其他任何名字),然后 S(即L(i)) 依次与 L(--i) 比较,满...
且末县15964367498: 有关数据结构的几个问题? - ?
游选复方: 数据结构是计算机存储、组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率的算法.数据结构往往同高效的检索算法和索引技术有关.
且末县15964367498: 数据结构的一个小问题.请教高手. - ?
游选复方: 首先解释一下各个函数:SUB(S,A,B)表示取S中从A开始的B个字符组成的子串,LENGTH(S)表示取S的长度,CONTACT(A,B)表示连接A,B,所以 S=CONTACT(SUB(S1,2,5),SUB(S1,5,2)) =CONTACT('BCDEF','EF') ='BCDEFEF'
且末县15964367498: 数据结构的几道小问题 - ?
游选复方: 3.A 4.D 5.C 6.D 7.A 8.A 9.A 10.B 6.A 您有哪个不明白啊?具体说一下吧..我和hwuaxj的答案有分歧,我说下我的想法:4.D 链栈在链表的头部进行操作(插入和删除结点),需要找到头结点的前驱结点.只有表头指针没有表尾指针的循环单链表,不方便找头结点的前驱结点.所以选D10.B 向链队中插入一个结点就是在单链表表尾插入一个结点.6.A 在循环队列插入下一个元素之前,要判断队列满否,即条件(Q.rear+1)%MaxSize==Q.front是否为真,所以与对头指针和队尾指针的值有关.
且末县15964367498: 大学数据结构小问题,谢谢! - ?
游选复方: 首先你要理解ASL(平均查找长度)的意思,14的意思是总的查找长度,10是线性表的元素的个数
且末县15964367498: 数据结构的小问题 p - >prior - >next=p - >next和p - >next - >prior=p - >prior是什么意思? - ?
游选复方:[答案] 删除p节点 第二个写得有问题吧.按照意思的话 是令p等于p前面的节点.