㈠ 數據結構(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 & ) { //重載函數:復數除法 查看更多答案>>