数据结构(c语言版)题目求答案

1.已知一个带头结点的单链表L,结点结构为

typedef struct Node {

ElemType data; //数据域

struct Node *next; //指针域

} *Link;

设只给出链表头指针L和一个正整数k。试设计一个尽可能高效的算法Search(L, k),用于查找L中倒数第k个位置上的结点。

¨3.28② 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点(注意不设头指针),试编写相应的队列初始化、入队和出队的算法。

¨3.31③ 顺读和逆读相同的字符序列称为回文,例如“abcba”是回文,而“ababab”不是回文。试编写一个算法,判别读入的一个以“#”为结束符的字符序列是否为回文
顺便想知道新建链表有哪些方法,个人感觉好像不只一种,有点迷惑

第1个回答  推荐于2016-12-01
3.28
void InitCiQueue(CiQueue&Q)//初始化循环链表表示的队列Q
{
Q=(CiLNode*)malloc(sizeof(CiLNode));
Q->next=Q;
}//InitCiQueue
voidEnCiQueue(CiQueue&Q,int x)//把元素x插入循环列表表示的队列Q,Q指向队尾元素,Q->next指向头结点,Q->next->next指向队尾元素
{
p=(CiLNode*)malloc(sizeof(CiLNode));
p->data=x;
p->next=Q->next;//直接把p加在Q的后面
Q->next=p;
Q=p;//修改尾指针
}
Status DeCiQueue(CiQueue&Q,int x)//从循环链表表示的队列Q头部删除元素x
{
if(Q==Q->next)return INFEASIBLE;//队列已空
p=Q->next->next;
x=p->data;
Q->next->next=p->next;
free(p);
rturn OK;
}//DeCiqueue

3.31

int Palindrome_Test()
{
InitStack(S);InitQueue(Q);
while((c=getchar())!='@')
{
Push(S,c);EnQueue(Q,c);
}
while(!StackEmpty(S))
{
pop(S,a);DeQueue(Q,b);
if(a!=b)return ERROR;
}
return OK;
}本回答被提问者采纳

数据结构(C语言版),求高手解决。。
1.二叉树是度为2的有序树( )【答案】× 2.完全二叉树一定存在度为1的结点( )【答案】× 3.深度为K的二叉树中结点总数≤2k-1( )【答案】√ 4.由一棵二叉树的先序序列和后序序列可以惟一确定它( )【答案】× 5.完全二叉树中,若一个结点没有左孩子,则它必是树叶...

c语言数据结构问题求解
A[0][0]和A[2][2]相差了(2*n+2)个元素,与A[3][3]相差了(3*n+3)个元素,所以,676-644=32,32\/2*3=48,644+48=692,选择c项。满意请采纳呦~

一份C语言的数据结构题目,急求答案
第一题;Search (BiTree t,ElemType x){ struct nodee;{BiTree pp;int tag;}s[100];int top; Bitree p;top=0; p=t;while(p!=NULL&&p->p!=NULL){while(p!=NULL&&p->data!=x){top++;s[top].pp=p;s[top].tag=0;p=p->lchild;} if(p!=NULL&&p->data==x){for(i=1...

求教一题数据结构(C语言),第5题
1+2+3+4+5+5=20 所以两者之差为19

数据结构c语言版一道题求解
,element[n - 1]存放线性表中的元素 *\/}; typedef struct SeqList *PSeqList;PSeqList createNullList_seq(int m ) {\/* 创建新的顺序表 *\/ PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList)); if (palist!=NULL){ palist->element= (DataType*)malloc(size...

数据结构c语言
1.数据结构是一门研究非数值计算的程序设计问题中计算机的 C 以及它们之间的 _ B 和运算等的学科。① A. 数据元素 B. 计算方法 C. 逻辑存储 D. 数据映象 ② A. 结构 B. 关系 C. 运算 D. 算法 2.数据结构被形式地定义为(K,R),其中K是 B 的有限集,R...

数据结构(c语言版)求助,我想了好久都没想出来?
内外层循环关系示意图 其中①是最外层循环,②是中间层循环,④是最内层循环,各语句的执行顺序是:先从最外层循环开始①、 ②、 ③各执行一次,到最内层④后,④连续执行(n+1)次,其内部语句⑤连续执行 n 次 ,然后返回至中间层 ②执行下一次,②每执行一次,③就执行一次,④连续执行(n+1)...

急需,求大神解答(数据结构,c语言版)
一共有g (4个),o(6),e(1),s(2),d(2)五种字符 节点数为2*n-1,所以一共有2*5-1=9个节点带权路径由赫夫曼树可以算出 赫夫曼树的的构建方法,每次找两个最小的权值构成子树,他们的和作为一个新的权值参与构建,原来的两个责从权值集合中删除,再找两个集合中最小构成子树,...

C语言数据结构地址问题 很困惑,请知道的帮你分析下。题目如下,
行优先表示只有一行满了才开始存下一行 你这里面主要是首先计算数组中每个元素的内存 先计算a[2][3]和a[4][7]间有多少元素 显然有两行多4个元素 每行9个 所以共有2*9+4=22 它们的地址差为1153-1087=66 表示22元素共占内存66 一个占3 a[6][7]比a[4][7]多2*9=18元素 地址应该大...

关于数据结构的问题,用C语言描述
采用一种数据结... 1. 设一函数 f(x,y)=(1+A*(e^B\/cosθ)*(1+C*(cosψ)^2),其中θ=(π*x)\/180,ψ=(π*y)\/180,参数A=-0.5,B=-0.4,C=-0.1。x从0变化到89,步长为1,y从0变化到359,步长为1。采用一种数据结构,完成f(x,y)的存储。2.上题的f(x,y)是实数值,请通过线性变化求出...

相似回答