数据结构的c语言算法.docxVIP

  • 14
  • 0
  • 约3.26万字
  • 约 43页
  • 2021-11-08 发布于辽宁
  • 举报
数据结构的G语言算法 线性结枸O*C*O*D 树形结构 树形结构 圉状结粕 圉状结粕 集合结构 作者:林庆达 班级:计算机(7)班 学号:80号 以下数据结构算法由C语言编译,并在TC上运行通过,其中,扩展名为” .CPP 的为头文件,运行时只需将头文件与相应算法连接即可。 第一章 绪论(预备知识) 练习 1.16 /* 试写一算法 , 自大至小输出顺序读入的三个整数 X,Y 和 Z 的值 */ #include stdio.h void swap(int *x,int *y,int *z) { int t; if(*x*y) t=*x;*x=*y;*y=t; if(*y*z) t=*y;*y=*z;*z=t; if(*x*y) t=*x;*x=*y;*y=t; } main() {int a,b,c; scanf(%d,%d,%d,a,b,c); swap(a,b,c); printf(%d %d %d,a,b,c); } 第二章 线性表 1.顺序表 实现顺序表基本算法的头文件 sq.cpp 为: #includestdio.h #define MaxLen 50 /* 顺序表中最多元素个数 */ typedef int elemtype; typedef elemtype sqlist[MaxLen]; int create(sqlist A) /* 创建线形表 */ { int i,n; printf( 创建一个顺序表: \n); printf( 输入元素个数: ); scanf(%d,n); for(i=0;in;i++) { printf(” 输入第%0个元素值:,i+1); scanf(%d,A[i]); } return n; } void disp(sqlist A,int n) /* 输出一个顺序表 */ { int i; printf( 输出一个顺序表 : \n); if(n==0) printf( 空表 ); for(i=0;in;i++) printf(%d ,A[i]); printf(\n); } int ins(sqlist A,int n,int i,elemtype x) /* 在顺序表第 i 个元素前插入一个元素 x, 若 i=0, 则新元素作为 第一个元素 , 若 i=1, 则插入在最后 */ { int j; if(i0||in) printf(i 值下溢或上溢 \n); else { for(j=n-1;j=i;j--) A[j+1]=A[j]; /* 将第 i 个元素及其后的元素后移 */ A[i]=x;n++; /* 顺序表长度加 1*/ } return n; } int del(sqlist A,int n,int i) /* 在顺序表中删除第 i 个元素 */ { int j; if(i=0||in) printf(i 值下溢或上溢 \n); else { for(j=i-1;jn;j++) A[j]=A[j+1]; /* 将第 i 个元素之后的元素前移覆盖 A[i]*/ n--; /* 顺序表长度减 1*/ } return n; } int find(sqlist A,int n,elemtype x) /* 在一个有 n 个元素的顺序表 A 中查找元素值为 x 的元素 */ { int i=0; while(i=nA[i]!=x) i++; if(in) return 1; else return 0; } 练习 2.11: /* 设顺序表 va 中的数据元素递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以保持该表的有 序性 */ #includesq.cpp int insert(sqlist A,int n,elemtype x) /* 顺序表 A 的长度为 n*/ int i,j; if(x=A[n-1]) A[n]=x; /* 若 x 大于最后的元素,则将其插入到最后 */ else { i=0; while(xA[i]) i++; /* 查找插入位置 i*/ for(j=n;j=i;j--) A[j+1]=A[j]; /* 移出插入 x 的位置 */ A[i]=x; } return (n+1); /* 顺序表长度增 1*/ } void main() { sqlist A; int n; n=create(A); disp(A,n); n=insert(A,n,10); /* 插入元素 10*/ disp(A,n); getch(); } /* 运行结果: 创建一个顺序表 输入元素个数: 3 输入第 1 个元素值: 6 输入第 1 个元素值: 9 输入第 1 个元素值: 14 输出一个顺序表 6 9 14 输出一个顺序表 6 9 10 14 */

文档评论(0)

1亿VIP精品文档

相关文档