数据结构 线性表 顺序表 源代码C
更新时间:2023-08-17 15:57:01 阅读量: 资格考试认证 文档下载
- 数据结构考研真题推荐度:
- 相关推荐
数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能
#define MAXSIZE 100 //MAXSIZE 为线性表可能的最大长度 #include <stdio.h>
#include <iostream.h>
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length; // length为线性表的长度
} SqList;
SqList l;
//线性表定义
void InitList(SqList &L) //初始化操作,将线性表L置空
{
}
L.length = 0;//g给顺序表长度初始化为0
void CreatSqlist(SqList &L,int n) //建立一个顺序存储的线性表 {
printf("请输入节点");
int i;
for(i=0;i<n;i++)
scanf("%d",&L.data[i]);//读取元素
L.length=n;//表的长度就是元素的个数
fflush(stdin); //清除一个流
}
void Output(SqList &L) //输出顺序表L
{
int i;
for(i=0;i<L.length;i++)
printf("%5d",L.data[i]); //每个数据占5列
printf("\n");
}
int DELETE(SqList &L,int i)//删除一个元素
{
int j;
if(i<1||i>L.length)//删除位置 错误
{printf("error");return 0;}
else
{
for(j=i;j<L.length;j++)
L.data[j-1]=L.data[j];//依次把后一个元素往前移动一个位置 L.length--;//删除之后长度减1
数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能
}
return 1;
}
int INSERT(SqList &L,int x,int i)//指定位置插入元素
{
int j;
if(L.length>=MAXSIZE-1)
{printf("over flow");return 1;}//上溢
else if((i<1)||(i>L.length+1))
{printf("error");return 1;}
else
{for(j=L.length;j>=i-1;j--)
L.data[j+1]=L.data[j];//元素位置依次后移一位
L.data[i-1]=x;//在第i个节点上插入x
L.length=L.length+1;//插入之后长度加1
}
return 0;
}
int GET(SqList &L,int i)//从表中获得一个元素
{
int m;
if((i<0)||(i>L.length)){printf("overflow");return 1;}
else if((i>=1)&&(i<=L.length))
{
m=L.data[i-1];
}printf("%d ",m);
return 0;
}
int chazhao(SqList &L,int x)//从表中查找元素
{
int i,k;
printf("\n请输入你要查找的元素 x=?");
scanf("%d",&x);
for(i=0;i<=(L.length+1);i++)//从第一个元素开始查找,与X比较。 {
if(x==L.data[i])
{printf("要查找的元素%d 位于 %d 上\n\n",x,i+1); k=0;
break;
}
}
数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能
if(k!=0) printf("%d 不在表中",x);
return 0;
}
int PUEGE(SqList &L)// 删除线性表中重复出现的多余节点 {
int i=1,j,x,y;
while(i<L.length)
{x=L.data[i];
j=i+1;
/*for(j=i+1;j<L.length;j++)*/
while(j<L.length)
{
y=L.data[j];
if(x==y)DELETE(l,j);
else j++;
}
i++;
}
return 0;
}
int main()
{int n,i,k,x;
InitList(l);
printf("请输入线性表的长度 ");
scanf("%d",&n);
CreatSqlist(l,n);
Output(l);
printf("请输入你要删除元素的位置=?");
scanf("%d",&k);
DELETE(l,k);Output(l);
printf("请输入想要 插入的数和位置x,i=?");
scanf("%d,%d",&x,&i);
INSERT(l,x,i);Output(l);
printf("请输入你要取的数在的节点位置");
scanf("%d",&i);
GET(l,i);
chazhao(l,x);
PUEGE(l);
return 0;
}
数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能
正在阅读:
数据结构 线性表 顺序表 源代码C08-17
08新版GMAT语法-讲义04-12
万盛招聘会网:2016万盛招聘会信息02-08
公共政策复习题05-27
人教版三年级语文下册字词句总结复习大全10-25
北京科技大学电子实习报告07-01
《中国当代文学史》教案04-16
日利木业可研12.2404-21
奥可教育上传-2012年湖北高考试题(理数_word解析版)08-10
户外运动前后半小时不要喝可乐06-02
- 梳理《史记》素材,为作文添彩
- 2012呼和浩特驾照模拟考试B2车型试题
- 关于全面推进施工现场标准化管理实施的通知(红头文件)
- 江西省房屋建筑和市政基础设施工程施工招标文件范本
- 律师与公证制度第2阶段练习题
- 2019-2020年最新人教版PEP初三英语九年级上册精编单元练习unit6训练测试卷内含听力文件及听力原文
- 小升初数学模拟试卷(十四) 北京版 Word版,含答案
- 认识创新思维特点 探讨创新教育方法-精选教育文档
- 00266 自考 社会心理学一(复习题大全)
- 多媒体在语文教学中的运用效果
- 派出所派出所教导员述职报告
- 低压电工作业考试B
- 18秋福建师范大学《管理心理学》在线作业一4
- 中国铝业公司职工违规违纪处分暂行规定
- 13建筑力学复习题(答案)
- 2008年新密市师德征文获奖名单 - 图文
- 保安员培训考试题库(附答案)
- 银川市贺兰一中一模试卷
- 2011—2017年新课标全国卷2文科数学试题分类汇编 - 1.集合
- 湖北省襄阳市第五中学届高三生物五月模拟考试试题一
- 数据结构
- 线性
- 源代码
- 顺序