博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构基础——顺序表的基本操作
阅读量:3939 次
发布时间:2019-05-23

本文共 2779 字,大约阅读时间需要 9 分钟。

顺序表的基本操作

实验要求

(0)顺序表的初始化

(1)顺序表的输入函数(注意:当线性表长度超出容量,则每次多开辟5个内存单位)

(2)顺序表的输出函数

(3)顺序表的插入函数

(4)顺序表的删除函数

(5)顺序表的按值查找函数

(6)顺序表的排序函数

(7)顺序表的合并函数

(8)动态顺序表的扩容函数

Sequence.h

#include
#include
#include
#define ERROR 0#define OK 1#define N 5typedef int ElemType;typedef struct SqList{
ElemType *p; int Length; int Max; char data;}SqList;ElemType SqList_Init(SqList *t);//初始化ElemType SqList_Add(SqList *t) ;//扩容void SqList_In(SqList *t);//输入ElemType SqList_Find(SqList *t,int key);//查找ElemType SqList_Merge(SqList *t);//合并void SqList_Sort( int a[] );//排序ElemType SqList_Out(SqList *t);//输出ElemType SqList_Init(SqList *t){
t->p=(ElemType*)malloc(sizeof(ElemType)*N); if(t->p==NULL) {
return ERROR; } else {
t->Length=0; t->Max=N; return OK; }}/* * 顺序表的初始化函数 */void SqList_In(SqList *t){
int data; int q=t->Length; char i; printf("请输入数据:"); do {
scanf("%d",&data); t->p[q]=data; t->Length++; SqList_Add(t); q++; } while((i=getchar())!='\n');}/* *输入函数 */ElemType SqList_Add(SqList *t) {
if(t->Length==t->Max) {
t->p = (ElemType*)realloc(t->p,sizeof(ElemType)*(t->Max+N)); if(t->p==NULL) {
return ERROR; } else {
t->Max=t->Max+N; return OK; } }}/* *扩容函数 */ElemType SqList_Find(SqList *t,int key){
int i=0; for(;i
Length;i++) {
if(t->p[i]==key) {
printf("您查找的元素首次在第%d位出现\n",++i); return i; } } printf("没有找到你所要查询的元素。\n");}/* *查询函数 */ElemType SqList_Out(SqList *t){
int i; printf("您当前输入的数据为:\n"); for(i=0;i
Length;i++) {
printf("%2d ",t->p[i]); } printf("\n"); return OK;}/* *输出函数 */void SqList_Sort(SqList *t){
int i,j,k; for(j=0;j
Length;j++) { for(i=0;i
Length-1-j;i++) { if(t->p[i]>t->p[i+1]) { k=t->p[i]; t->p[i]=t->p[i+1]; t->p[i+1]=k; } } } printf("排序完的元素为:\n"); for(i=0;i
Length;i++) { printf("%2d",t->p[i]); } printf("\n");}/* *排序函数 */ElemType SqList_Insert(SqList *t,int L){ int i,j=0; int n; i=t->Length; for(;j
Length;k>j-1;k--) { t->p[k+1]=t->p[k]; } t->Length++; SqList_Add(t); printf("请输入您要插入的元素:\n"); scanf("%d",&n); t->p[L-1]=n; } } printf("您要插入元素后的结果为:\n"); for(i=0;i
Length;i++) { printf("%2d",t->p[i]); } printf("\n"); return OK;}/* *插入元素函数 */ElemType SqList_Merge(SqList *t){ int data; int q=t->Length; char i; printf("请输入另一个表数据:\n"); do { scanf("%d",&data); t->p[q]=data; t->Length++; SqList_Add(t); q++; } while((i=getchar())!='\n'); return OK;}/* *合并函数 */

main.c

#include"Sequence.h"int main(){
SqList T; int Key; int L; SqList_Init(&T);/*初始化*/ SqList_In(&T);/*输入*/ SqList_Out(&T);/*输出*/ printf("请输入您要查找的元素:\n"); scanf("%d",&Key); SqList_Find(&T,Key);/*查找*/ printf("请输入您要插入元素的位置:\n"); scanf("%d",&L); SqList_Insert(&T,L);/*插入*/ SqList_Merge(&T);/*合并*/ SqList_Sort(&T);/*排序*/}

测试运行结果:

Alt

转载地址:http://xwywi.baihongyu.com/

你可能感兴趣的文章
docker网络
查看>>
锐捷交换机的多对多镜像口
查看>>
Linux系统修改编码
查看>>
word文档不能显示图片的处理
查看>>
linux的多桌面环境Xephyr
查看>>
初探debian桌面的管理启动
查看>>
七层协议图
查看>>
华为交换机作为AC的条件
查看>>
禁用Ubuntu 15.04登录界面显示客人会话(简单-实用)
查看>>
linux X下安装的软件
查看>>
Linux监测某一时刻对外的IP连接情况
查看>>
CentOS7 最小环境安装Jumpserver 1.0版脚本
查看>>
X-Security X的安全控制
查看>>
openVAS的安装
查看>>
Centos 6.5 初始安装无网卡驱动解决方法
查看>>
linux中的网桥bridge
查看>>
linux中的teaming与bonding
查看>>
LVM
查看>>
用shell切分文件--split
查看>>
python中判断字符是否为中文
查看>>