数据结构程序Word文档下载推荐.docx
- 文档编号:22873939
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:15
- 大小:16.81KB
数据结构程序Word文档下载推荐.docx
《数据结构程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构程序Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
voidxianshi(DanNode*head)
inti;
DanNode*p=head;
i=0;
while(p!
=0)
printf("
第%d个节点:
%d\n"
i++,p->
data);
voidmain()
DanNode*xhead;
goujian(&
xhead,10);
xianshi(xhead);
getchar();
双链表
#include<
typedefstructDuLNode{
intdata;
structDuLNode*prior;
structDuLNode*next;
}DuLNode,*DuLink;
DuLNode*create(DuLNode*h)
DuLNode*c,*r;
inti,n;
r=h;
printf("
请输入建立链表的个数:
"
);
scanf("
&
n);
r->
data=n;
/*头结点保存链表元素个数*/
i<
n;
i++)
c=(DuLNode*)malloc(sizeof(DuLNode));
输入节点的值:
(c->
data));
/*先勾走新建节点的前后链接指针*/
c->
prior=r;
next=NULL;
/*将新建节点添加到链表尾*/
next=c;
/*链表尾指针后移*/
r=c;
returnh;
voidoutput(DuLNode*h)
DuLNode*l;
l=h->
while(l!
=NULL)
l->
l=l->
intmain(void)
DuLNode*p=(DuLNode*)malloc(sizeof(DuLNode));
/*为链表头分配空间*/
create(p);
output(p);
free(p);
return0;
堆栈
//数组实现堆栈
typedefstructDalangtong{
intshaobingTong[5];
inttop;
}Dalangtong;
voidchushihua(Dalangtong*xtong){
xtong->
top=0;
voidfangshaobing(Dalangtong*xtong,intshaobing){
if(xtong->
top>
=5){
桶满了,别放了"
return;
//(*xtong).shaobingTong[(*xtong).top]=shaobing;
shaobingTong[xtong->
top]=shaobing;
top++;
intqushaobing(Dalangtong*xtong){
intx;
top<
=0){
没有烧饼了!
return-1;
x=xtong->
top-1];
top--;
returnx;
intkanshaobing(Dalangtong*xtong){
看什么看,没有烧饼了!
returnxtong->
intmain(){
Dalangtongtong1,tong2;
inti,x,n;
chushihua(&
tong1);
请输入烧饼的个数:
for(i=0;
{
scanf("
fangshaobing(&
tong1,x);
}
printf("
qushaobing(&
tong1));
getchar();
树
typedefstructtree{
chardata;
structtree*leftchild;
structtree*rightchild;
}tree;
voidgoujian(tree**root,chart)
tree*p;
p=*root;
p=(tree*)malloc(sizeof(tree));
p->
data=t;
leftchild=0;
rightchild=0;
intaddleftchild(tree**node,charx)
p=*node;
if(p==0)
return1;
intaddrightchild(tree**node,charx)
intmain()
tree*root,*m,*n;
root,'
a'
m=addleftchild(&
b'
n=addrightchild(&
c'
addleftchild(&
m,'
d'
addrightchild(&
e'
n,'
f'
g'
排序
time.h>
string.h>
#defineBUF100
typedefstructStation{
charstationName[50];
charpinyin[50];
intstationId;
}Station;
voidpartString(char*src,char*dst,intstart,intend){
inti,j;
j=0;
for(i=start;
end;
dst[j++]=src[i];
dst[j]=0;
voidreadToArray(Station*bjStation,char*filePath){
FILE*fp_read;
inti=0,j=10;
charsLine[100],stationName[50],pinyin[50],stationIdStr[10];
intfirstIndex,secondIndex;
if((fp_read=fopen(filePath,"
r"
))==NULL)
文件打开失败!
\n"
while(fgets(sLine,BUF,fp_read)!
firstIndex=0;
while(sLine[firstIndex]!
='
'
)firstIndex++;
partString(sLine,stationName,0,firstIndex);
secondIndex=firstIndex+1;
while(sLine[secondIndex]!
)secondIndex++;
partString(sLine,pinyin,firstIndex+1,secondIndex);
partString(sLine,stationIdStr,secondIndex+1,strlen(sLine)-1);
strcpy(bjStation[i].stationName,stationName);
strcpy(bjStation[i].pinyin,pinyin);
bjStation[i].stationId=atoi(stationIdStr);
//printf("
%s\n"
bjStation[i].stationName);
i++;
voidwriteArrayToFile(StationbjStation[],intlen,char*filePath){
FILE*fp_write;
charsLine[100],stationIdStr[10];
if((fp_write=fopen(filePath,"
wb"
文件写入失败!
//*
len;
i++){
sLine[0]=0;
//清空字符串
strcat(sLine,bjStation[i].stationName);
strcat(sLine,"
"
strcat(sLine,bjStation[i].pinyin);
itoa(bjStation[i].stationId,stationIdStr,10);
strcat(sLine,stationIdStr);
\r\n"
fputs(sLine,fp_write);
};
//*/
//fputs("
test\r\n"
fp_write);
asdfj"
fclose(fp_write);
voidcopyStation(Station*src,Station*dest){//赋值
strcpy(dest->
stationName,src->
stationName);
pinyin,src->
pinyin);
dest->
stationId=src->
stationId;
voidcharuPaixu(Stationa[],intn)//简单插入排序
Stationtemp;
n-1;
copyStation(&
a[i+1],&
temp);
j=i;
while(j>
-1&
&
strcmp(temp.pinyin,a[j].pinyin)<
0)
copyStation(&
a[j],&
a[j+1]);
j--;
temp,&
voidBubbleSort(Stationa[],intn)//冒泡排序
inti,j,flag=1;
for(i=1;
n&
flag==1;
flag=0;
for(j=0;
j<
j++)
if(strcmp(a[j].pinyin,a[j+1].pinyin)<
{
flag=1;
copyStation(&
a[j+1],&
a[j]);
}
voidShellSort(Stationa[],intn,intd[],intnum)//希尔插入排序
{inti,j,k,m,span;
for(m=0;
m<
num;
m++)
span=d[m];
for(k=0;
k<
span;
k++)
for(i=k;
n-span;
i=i+span)
temp=a[i+span];
j=i;
while(j>
a[j+span]);
j=j-span;
}
voidSelectSort(Stationa[],intn)//简单选择排序
inti,j,small;
small=i;
for(j=i+1;
if(strcmp(a[j].pinyin,a[small].pinyin)<
small=j;
if(small!
=i)
a[i],&
a[small],&
a[i]);
a[small]);
voidmain(){
longstart=clock();
intd[7]={1000,300,100,40,10,5,1};
charfilePath[200]="
D:
\\bjStations.txt"
;
StationbjStation[9787];
readToArray(bjStation,filePath);
//charuPaixu(bjStation,9787);
//1640ms简单插入排序
ShellSort(bjStation,9787,d,7);
//62ms希尔插入排序
//SelectSort(bjStation,9787);
//469ms简单选择排序//任选一个
//BubbleSort(bjStation,9787);
//5078ms冒泡排序
//QuickSort(bjStation,0,9786);
//15ms快速排序
//heapSort(bjStation,9787);
//46ms堆排序
writeArrayToFile(bjStation,9787,"
\\gj.txt"
执行时间为%ld毫秒\n"
clock()-start);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)