实验汇总Word下载.docx
- 文档编号:19565350
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:29
- 大小:19.14KB
实验汇总Word下载.docx
《实验汇总Word下载.docx》由会员分享,可在线阅读,更多相关《实验汇总Word下载.docx(29页珍藏版)》请在冰豆网上搜索。
intmain(){
intT,i,item,j;
intt[100];
cin>
>
T;
t[0]=T;
=T;
cin>
t[i];
listli;
li.create(t);
li.getSize();
cout<
<
li.find(i)<
"
"
;
cout<
endl;
li.find(j)<
j>
item;
li.insert(item,j);
li.del(j);
return0;
②顺序查找:
inttext,T,i,item,j;
text;
for(j=0;
j<
j++){
for(i=T;
0;
if(t[i]==item)
break;
if(i>
0)
'
1'
T-i+1<
else
0'
}
③单链表实验:
classNode{
intdata;
Node*next;
Node(Node*ptrNext=NULL){
next=ptrNext;
Node(inti,Node*ptrNext=NULL){
data=i;
Node*head;
list(){head=newNode();
size=0;
Node*index(inti);
intfind(inti);
Node*list:
index(inti){
if(i==0)returnhead;
Node*p=head->
next;
intj;
for(j=1;
i&
&
p!
=NULL;
j++)
p=p->
returnp;
Node*p=index(i);
returnp->
data;
Node*p=index(j-1);
Node*q=newNode(item,p->
next);
p->
next=q;
Node*q=index(j);
next=q->
deleteq;
intT,i,item,j,t[100];
li.insert(t[i],i);
④折半查找实验:
inttext,T,t[100],i,j;
intlow,high,mid,key,count;
low=1;
high=T;
count=0;
key;
while(low<
=high){
count++;
mid=(low+high)/2;
if(t[mid]>
key)
high=mid-1;
else
if(t[mid]<
low=mid+1;
else
break;
if(low<
=high)
mid<
count<
⑤快速排序实验:
voidShowSeqList(int*Key,intn)
{
n;
Key[i]<
intFirst=1;
voidQuickSort(intlow,inthigh,int*Key)
inti,j,Pivotkey;
i=low;
j=high;
Pivotkey=Key[low];
high){
while((low<
high)&
(Pivotkey<
Key[high]))
high--;
if(low<
high)
{
Key[low]=Key[high];
low++;
}
(Key[low]<
Pivotkey))
high)
Key[high]=Key[low];
Key[low]=Pivotkey;
if(First)ShowSeqList(Key,j);
First=0;
if(i<
low-1)QuickSort(i,low-1,Key);
if(high+1<
j)QuickSort(high+1,j,Key);
intmain()
inti,t,Key[100];
t;
=t;
Key[i];
ShowSeqList(Key,t);
QuickSort(1,t,Key);
⑥希尔排序实验:
voidshellsort(int*v,intn){
intgab,I,k,j,temp;
for(gab=n/2;
gab>
gab/=2){
for(i=n;
i-=gab)
for(k=0;
k<
gab;
k++)
for(j=k;
i-gab;
j+=gab)
if(v[j]>
v[j+gab]){
temp=v[j];
v[j]=v[j+gab];
v[j+gab]=temp;
}
for(i=0;
n-1;
v[i]<
”“;
intT,t[100];
intI;
T-1;
t[i]<
shellsort(t,T);
较难:
⑦图的深度优先搜索实验:
classDNSTraverse{
intMaxNodeNo;
intAdjMatrix[100][100];
intVisited[100];
intDFSNodeNo;
intDFSNode[100];
voidCreate(int*e,intn);
voidDFS(intv);
voidDNSTraverse:
Create(int*e,intn){
inti,j;
MaxNodeNo=n;
DFSNodeNo=0;
for(j=0;
AdjMatrix[i][j]=e[i*n+j];
Visited[i]=0;
DFS(intv){
DFSNode[DFSNodeNo++]=v;
Visited[v]=1;
MaxNodeNo;
if(AdjMatrix[v][j]>
0&
Visited[j]==0)
DFS(j);
inte[100];
inti,j,m;
intT,S;
DNSTraverse*D=newDNSTraverse();
for(m=0;
m<
m++){
S;
for(i=0;
for(j=0;
cin>
e[i*S+j];
D->
Create(e,S);
DFS(0);
D->
DFSNodeNo;
cout<
DFSNode[i]<
⑧最短路径实验:
#defineINFINITY100
#defineMAX100
typedefstruct
intVertexNum;
charVertex[MAX];
intAdjMatrix[MAX][MAX];
}Graph;
GraphMGraph;
charPath[MAX][MAX];
intDest[MAX];
voidCreateGraph(Graph*G)
intI,j;
cin>
G->
VertexNum;
for(i=1;
=G->
Vertex[i];
AdjMatrix[i][j];
if(G->
AdjMatrix[i][j]==-1)
G->
AdjMatrix[i][j]=INFINITY;
voidShortestPath(Graph*G,charStartVexChar)
intI,j,m,StartVex,CurrentVex,MinDest;
intVisited[MAX];
Vertex[i]==StartVexChar)
{
StartVex=I;
break;
Path[i][0]=0;
Dest[i]=INFINITY;
AdjMatrix[StartVex][i]<
INFINITY)
Dest[i]=G->
AdjMatrix[StartVex][i];
Path[i][1]=G->
Vertex[StartVex];
Path[i][2]=G->
Path[i][0]=2;
Visited[i]=’F’;
Dest[StartVex]=0;
Visited[StartVex]=’T’;
MinDest=INFINITY;
if(Visited[j]==’F’&
Dest[j]<
MinDest)
CurrentVex=j;
MinDest=Dest[j];
Visited[CurrentVex]=’T’;
if((Visited[j]==’F’)&
(MinDest+G->
AdjMatrix[CurrentVex][j]<
Dest[j]))
Dest[j]=MinDest+G->
AdjMatrix[CurrentVex][j];
=Path[CurrentVex][0];
m++)
Path[j][m]=Path[CurrentVex][m];
Path[j][0]++;
Path[j][Path[j][0]]=G->
Vertex[j];
voidShowPath(Graph*G)
Vertex[i]<
”(“<
Dest[i]<
”):
”;
if(Path[i][0]>
=Path[i][0];
”“<
Path[i][j];
intmain(intargc,char*argv[])
charStartVex;
CreateGraph(&
Mgraph);
StartVex;
ShortestPath(&
Mgraph,StartVex);
ShowPath(&
return0;
难:
⑨Huffman树:
string.h>
#defineERROR-1
#defineCORRECT1
#defineMAXC15
#defineMAXH100
#defineMAXS100
{
charc;
intweight;
intparent,lchild,rchild;
charcode[MAXC];
}HTNode,*HuffmanTree;
HTNodeHT[MAXH];
voidSelect(inti1,int*s1,int*s2)
unsignedintj,s;
s=0;
=i1;
j++)
{
if(HT[j].parent==0)
if(s==0)s=j;
if(HT[j].weight<
HT[s].weight)s=j;
}
*s1=s;
if((HT[j].parent==0)&
(j!
=*s1))
*s2=s;
}
voidCreateHTree(intn,char*c,int*w)
inti,m,s1,s2;
m=2*n-1;
=n;
++i)
HT[i].parent=HT[i].lchild=HT[i].rchild=0;
HT[i].weight=w[i-1];
HT[i].c=c[i-1];
for(;
=m;
HT[i].parent=HT[i].lchild=HT[i].rchild=HT[i].weight=0;
for(i=n+1;
Select(i-1,&
s1,&
s2);
HT[s1].parent=i;
HT[s2].parent=i;
HT[i].lchild=s1;
HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;
voidHCode(intn)
inti,j,m,c,f,start;
charcd[MAXC];
m=MAXC;
cd[m-1]=0;
i++)
start=m-1;
for(c=i,f=HT[i].parent;
f!
=0;
c=f,f=HT[f].parent)
if(HT[f].lchild==c)cd[--start]='
elsecd[--start]='
m-start;
j++)HT[i].code[j]=cd[start+j];
HT[i].code[j]=0;
voidShowHCode(intn)
i++)cout<
HT[i].code<
intShowHEncode(intn,char*eString)
strlen(eString);
if(eString[j]==HT[i].c)
HT[i].code;
n)return(ERROR);
return(CORRECT);
intShowHDecode(intn,char*dString)
inti,c;
intRoot;
Root=2*n-1;
c=Root;
strlen(dString);
if((HT[c].lchild==0)&
(HT[c].rchild==0))
HT[c].c;
if(dString[i]=='
)
if(HT[c].lchild==0)return(ERROR);
c=HT[c].lchild;
if(HT[c].rchild==0)return(ERROR);
c=HT[c].rchild;
HT[c].c<
intmain()
inti,n;
charc[MAXH]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 汇总