教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

数据结构与算法实验源代码

来源:网络收集 时间:2026-08-23
导读: 数据结构与算法实验程序 实验二 #includestdio.h #includestdlib.h #define Maxlen 100 typedef struct{ int data[Maxlen]; int last; }Sequenlist; Sequenlist *SqLsetnull(){ //建立一个空的顺序表 Sequenlist *L; L=(Sequenlist *)malloc(sizeof(Sequenli

数据结构与算法实验程序

实验二

#include<stdio.h>

#include<stdlib.h>

#define Maxlen 100

typedef struct{

int data[Maxlen]; int last;

}Sequenlist;

Sequenlist *SqLsetnull(){ //建立一个空的顺序表

Sequenlist *L; L=(Sequenlist *)malloc(sizeof(Sequenlist)); L->last=-1;

return L;

}

void *SqLset(Sequenlist *L){ //对顺序表输入数据

int n; printf("请输入要输入的元素数量:"); scanf("%d",&n); printf("请输入要输入的元素:"); for(int i=0;i<n;i++){ scanf("%d",&L->data[i]);

}

L->last=i;

return L;

}

int SqLdelete(Sequenlist *L,int i){ //删除顺序表中的元素

//因为只是调用该函数删除顺序表中多余的元素省略的一些数据判断

int j; for(j=i;j<=L->last+1;j++) L->data[j]=L->data[j+1]; L->last--;

return 1;

}

void SqLdel(Sequenlist *L){ //寻找顺序表中多余的元素并删除

int i,j; if(L->last<0){ printf("\n顺序表为空\n"); } else{ for(i=0;i<=L->last;i++){ for(j=i+1;j<=L->last;j++) if(L->data[j]==L->data[i]){ SqLdelete(L,j); //调用函数删除下标为j的结点

数据结构与算法实验程序

}

}

}

}

void SqLsc(Sequenlist *L){ //输出顺序表中的数据

int i; if(L->last<0) printf("\n顺序表为空\n"); else{ printf("顺序表中的元素:"); for(i=0;i<L->last;i++){ } printf("%d ",L->data[i]); } printf("\n");

}

int main(void){

Sequenlist *L;

L=SqLsetnull(); int choice; printf("1,输入数据 2,删除重复多余的数据 3,输出数据 0,退出 \n"); do{ printf("请输入选择:"); scanf("%d",&choice); switch(choice){ case 1: SqLset(L); printf("\n"); break; case 2: SqLdel(L); printf("\n"); break; case 3: SqLsc(L); printf("\n"); break; default: printf("请输入正确的选择!\n"); break; case 0: break; }

数据结构与算法实验程序

} return 0;

实验三

#include<stdio.h>

#include<stdlib.h>

#define SIZE 15

typedef struct{

int data[SIZE];

int last;

}RecordList;

RecordList *shuru(){ //向顺序表中输入数据

int s,i=0; RecordList *L; L=(RecordList *)malloc(sizeof(RecordList)); printf("请输入要输入到顺序表中数据的数量:"); scanf("%d",&s); if(s>15){ printf("超过最大的数据长度"); } else{ printf("请输入要输入的数据:"); for(i=0;i<s;i++) scanf("%d",&L->data[i]); } printf("成功输入%d个数据 \n\n",i); L->last=i-1;

return L;

}

void paixu(RecordList *L){ //冒泡排序法对顺序表中的数据进行排序

int x,change=1,i,j; for(i=0;i<L->last&&change!=0;i++){ change=0; for(j=0;j<L->last-i;j++){

数据结构与算法实验程序

} } } } x=L->data[j+1]; L->data[j+1]=L->data[j]; L->data[j]=x; change=1;

int BinSrch(RecordList *L,int k){ //二分查找

int low=0,i=-1,high,mid; high=L->last; while(low<=high){ mid=(low+high)/2; if(k==L->data[mid]){ } i=mid; break; else if(k<L->data[mid]) high=mid-1; else low=mid+1; } return i;

}

int main(void)

{

RecordList *L=NULL; int i,choice,data1; printf("1,输入数据 2,二分法查找 do{ printf("请输入选择:"); scanf("%d",&choice); switch(choice){ case 1: L=shuru(); //输入数据 paixu(L); //数据排序 break; 0,退出\n"); case 2: if(L==NULL||L->last==-1){ //查找前检验表中是否有数据 } printf("\n顺序表为空\n\n"); break;

数据结构与算法实验程序

} printf("请输入要查找的数据:"); } scanf("%d",&data1); i=BinSrch(L,data1); printf("数据%d的序号(下标)是%d \n\n",data1,i); break; default: printf("\n请输入正确的选择\n\n"); break; case 0: break; } }while(choice!=0); return 0;

实验四

#include<stdio.h>

#include<stdlib.h>

#define SIZE 15

typedef struct{

int data[SIZE];

int last;

}RecordList;

RecordList *shuru(){ //向顺序表中输入数据

int s,i=0; RecordList *L; L=(RecordList *)malloc(sizeof(RecordList)); printf("请输入要输入到顺序表中数据的数量:"); scanf("%d",&s); if(s>15){ printf("超过最大的数据长度"); } else{

数据结构与算法实验程序

printf("请输入要输入的数据:"); for(i=0;i<s;i++) scanf("%d",&L->data[i]); } printf("成功输入%d个数据 \n\n",i); L->last=i-1; return L;

}

void paixu(RecordList *L){ //冒泡排序法对顺序表中的数据进行排序

}

void shuchu(RecordList *L){

int i; for(i=0;i<=L->last;i++){ } printf("%d ",L->data[i]); int x,change1=1,change2=1,i,j; for(i=0;change1!=0||change2!=0;i++){ change1=0; } change2=0; if(i%2==0){ for(j=1;j<L->last;j=j+2){ if(L->data[j]>L->data[j+1]){ } x=L->data[j+1]; L->data[j+1]=L->data[j]; L->data[j]=x; change1=1; } } else{ for(j=0;j<L->last;j=j+2){ } } if(L->data[j]>L->data[j+1]){ x=L->data[j+1]; } L->data[j+1]=L->data[j]; L->data[j]=x; change2=1;

}

int main(void)

数据结构与算法实验程序

{

} RecordList *L=NULL; int choice; printf("1,输入数据 2,冒泡排序 do{ printf("请输入选择:"); scanf("%d",&choice); switch(choice){ case 1: L=shuru(); //输入数据 break; case 2: paixu(L); …… 此处隐藏:7618字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据结构与算法实验源代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1443890.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)