当前位置:首页 » 编程语言 » 数据结构c语言第六版课后练习答案
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据结构c语言第六版课后练习答案

发布时间: 2023-01-03 12:40:13

㈠ 数据结构(c语言版)急求2.6答案,我自己做的好像都错完了,看不懂,求大神指教

a.在p结点后插入s结点的语句序列是:
4.s-> next := p-> next; //把s的尾部接到链表上,连p的下一个
1. P-> next :=s; //把s的头部接到p的尾部

b.在p结点前插入s结点的语句序列是----------------
7.q := p ; //临时变量q
11.p := L; //从头开始搜素
8.while (p-> next != q ) do p := p-> next; //使p成为原p的前一个节点
4.s-> next := p-> next; //插入,跟上面一样。
1. P-> next :=s;

c.在表首插入s结点的语句序列是----------------
5.s-> next := L; //s接原来的表头
12.L := s; //将s设为新的表头

d.在表尾插入s结点的语句序列是----------------
11.p := L; //从头开始搜素
9.while (p-> next !=NIL) do p := p-> next; //找到最后一个节点
1. P-> next :=s; //把s接到最后一个节点上

㈡ 下面这是严蔚敏《数据结构C语言版》习题集6.36的答案,这是类C,还是纯C语言,还是C++

基本上就是C语言,返回值它直接写了一个Status,程序里的返回值是TRUE和FALSE,如果把STATUS改成BOOL就是标准的C语言了。C语言是C++的一个子集,这个程序也可以认为是C++写的。

㈢ 求数据结构(c语言版)课后习题答案

数据结构习题与解析(C语言版)http://download.csdn.net/detail/tanxiao589/3630936本书是针对清华大学出版社出版的《数据结构》(秦玉平和马靖善主编)一书编写的辅导教材。

㈣ 跪求李学刚的《数据结构(C语言描述)》课后习题答案

答案没有,不过我有视频,不知道你需要不,因为我是自学,我现在就在看,感觉还不错。一听就能听懂的那种,感觉比较适合我这样入门刚学的人。最吸引的地方就是讲的难理解的概念讲的特别好,用形象比喻举例讲概念,比如变量比喻成装东西的盒子,我一下子就理解了变量赋值为什么是从右往左。还有很多这样类似的比喻。比我之前看的什么郝斌曾怡金文的晦涩难懂的都好多了。

㈤ 数据结构(C语言版)课后习题,求大佬解答

#include<stdio.h>

void f(char *s,char *ss,int n) { int i,k,m; char *p,*q,*r;

k=0; r=ss; while ( *r ) { r++; k++; } //找到ss的末尾0,计算ss长度

m=0; q=s; while ( *q ) { q++; m++; } //找到s的末尾0

p=q; q+=k; *q=0; q--; //计算新字符串结尾位置

for ( i=0;i<m-n;i++,p--,q-- ) *q=*p; //将s最后k个字符后移k位

for ( i=0,r--;i<k;i++,q--,r-- ) *q=*r; //将ss倒序复制到s中空出来位置

}

void main() { char s[256],ss[256]; int n;

scanf("%s%s%d",s,ss,&n); f(s,ss,n); printf("%s ",s);

}

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

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语言版)习题集》答案

这不能发网站,告诉你在哪找。
上网络文库,搜索 “严蔚敏《数据结构(C语言版)习题集》答案 ”
结果中第一个就是了

㈧ 数据结构(C语言版)课后题-关于串的算法

算法如下:

int strReplace(SString S,SString T, SString V)

{/*用串V替换S中的所有子串T */

int pos,i;

pos=strIndex(S,1,T); /*求S中子串T第一次出现的位置*/

if(pos = = 0) return(0);

while(pos!=0) /*用串V替换S中的所有子串T */

{

switch(T.len-V.len)

{

case 0: /*串T的长度等于串V的长度*/

for(i=0;i<=V.len;i++) /*用V替换T*/

S->ch[pos+i]=V.ch[i];

case >0: /*串T的长度大于串V的长度*/

for(i=pos+t.ien;i<S->len;i--) /*将S中子串T后的所有字符

S->ch[i-t.len+v.len]=S->ch[i]; 前移T.len-V.len个位置*/

for(i=0;i<=V.len;i++) /*用V替换T*/

S->ch[pos+i]=V.ch[i];

S->len=S->len-T.len+V.len;

case <0: /*串T的长度小于串V的长度*/

if(S->len-T.len+V.len)<= MAXLEN /*插入后串长小于MAXLEN*/

{ /*将S中子串T后的所有字符后移V.len-T.len个位置*/

for(i=S->len-T.len+V.len;i>=pos+T.len;i--)

S->ch[i]=S->ch[i-T.len+V.len];

for(i=0;i<=V.len;i++) /*用V替换T*/

S->ch[pos+i]=V.ch[i];

S->len=S->len-T.len+V.len; }

else

{ /*替换后串长>MAXLEN,但串V可以全部替换*/

if(pos+V.len<=MAXLEN)

{ for(i=MAXLEN-1;i>=pos+T.len; i--)

S->ch[i]=s->ch[i-T.len+V.len]

for(i=0;i<=V.len;i++) /*用V替换T*/

S->ch[pos+i]=V.ch[i];

S->len=MAXLEN;}

else /*串V的部分字符要舍弃*/

{ for(i=0;i<MAXLEN-pos;i++)

S->ch[i+pos]=V.ch[i];

S->len=MAXLEN;}

}/*switch()*/

pos=StrIndex(S,pos+V.len,T); /*求S中下一个子串T的位置*/

}/*while()*/

return(1);

}/*StrReplace()*/

㈨ 数据结构 (c语言版)胡学纲 课后习题 答案谢谢了,大神帮忙啊

数据结构课程第一章部分习题解答 第一章 绪论 1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求 (1) 在复数内部用浮点数定义它的实部和虚部。 (2) 实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。 (3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。 (4) 定义重载的流函数来输出一个复数。 【解答】 抽象数据类型通常是指由用户定义,用以表示应用问题的数据模型。抽象数据类型由基本的数据类型构成,并包括一组相关的服务。 //在头文件complex.h中定义的复数类 #ifndef _complex_h_ #define _complex_h_ #include class comlex { public: complex ( ){ Re = Im = 0; } //不带参数的构造函数 complex ( double r ) { Re = r; Im = 0; } //只置实部的构造函数 complex ( double r, double i ) { Re = r; Im = i; } //分别置实部、虚部的构造函数 double getReal ( ) { return Re; } //取复数实部 double getImag ( ) { return Im; } //取复数虚部 void setReal ( double r ) { Re = r; } //修改复数实部 void setImag ( double i ) { Im = i; } //修改复数虚部 complex & operator = ( complex & ob) { Re = ob.Re; Im = ob.Im; } //复数赋值 complex & operator + ( complex & ob ); //重载函数:复数四则运算 complex & operator – ( complex & ob ); complex & operator * ( complex & ob ); complex & operator / ( complex & ob ); friend ostream & operator << ( ostream & os, complex & c ); //友元函数:重载<< private: double Re, Im; //复数的实部与虚部 }; #endif //复数类complex的相关服务的实现放在C++源文件complex.cpp中 #include #include #include “complex.h” complex & complex :: operator + ( complex & ob ) { //重载函数:复数加法运算。 complex * result = new complex ( Re + ob.Re, Im + ob.Im ); return *result; } complex & complex :: operator – ( complex & ob ) { //重载函数:复数减法运算 complex *result = new complex ( Re – ob.Re, Im – ob.Im ); return * result; } complex & complex :: operator * ( complex & ob ) { //重载函数:复数乘法运算 complex *result = new complex ( Re * ob.Re – Im * ob.Im, Im * ob.Re + Re * ob.Im ); return *result; } complex & complex :: operator / ( complex & ) { //重载函数:复数除法 查看更多答案>>