用数组实现线性表
来源:互联网 发布:mes用什么软件 编辑:程序博客网 时间:2024/05/20 19:18
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct node *Ptrl;
struct node{
int *Data;
int Last;
};
Ptrl Dent(int a)//进行初始化
{
Ptrl T;
T=(Ptrl)malloc(sizeof(Ptrl)*a);
T->Last=-1;
return T;
}
int Find(int X,Ptrl List)//查找下标操作
{
int i=0;
while(i<=List->Last&&List->Data[i]!=X)
{
i++;
}
if(i>List->Last)
{
return -1;
}
else
{
return i;
}
}
void Insert(int X,int i,int size,Ptrl List)//进行插入操作
{
if(List->Last==size-1)
{
printf("空间已满\n");
return ;
}
if(i<1||i>size-1)
{
printf("要插入位置异常\n");
return ;
}
for(int j=List->Last;j>=i-1;j--)
{
List->Data[j+1]=List->Data[j];
}
List->Data[i-1]=X;
List->Last++;
return ;
}
Ptrl Add(Ptrl List,int i)
{
int j,x;
for(j=0;j<i;j++)
{
scanf("%d",&x);
List->Data[j]=x;
List->Last++;
}
return List;
}
void Delete(int x,Ptrl List)
{
int j,i;
while(j<List->Last&&List->Data[j]!=x)
{
j++;
}
if(j>List->Last)
{
printf("不存在该元素\n");
}
for(i=j;i<=List->Last;i++)
{
List->Data[i]=List->Data[i+1];
}
List->Last--;
}
void print(Ptrl List)//遍历元素
{
int i;
for(i=0;i<=List->Last;i++)
{
printf("%d ",List->Data[i]);
}
}
int main()
{
Ptrl P;
int num,size,j,x;
printf("输入空间大小:");
scanf("%d",&size);
P=Dent(size);
printf("输入存储的元素个数:");
scanf("%d",&num);
P=Add(P,num);
printf("输入要查找的元素:");
scanf("%d",&x);
j=Find(x,P);
if(j==-1)
{
printf("不存在该元素\n");
}
else
{
printf("该元素的下标是%d\n",j);
}
printf("输入要插入的元素、位置:");
scanf("%d %d",&x,&j);
Insert(x,j,size,P);
printf("输入要删除的元素:");
scanf("%d",&x);
Delete(x,P);
printf("线性表的内容:");
print(P);
return 0;
}
#include <string.h>
#include <stdlib.h>
typedef struct node *Ptrl;
struct node{
int *Data;
int Last;
};
Ptrl Dent(int a)//进行初始化
{
Ptrl T;
T=(Ptrl)malloc(sizeof(Ptrl)*a);
T->Last=-1;
return T;
}
int Find(int X,Ptrl List)//查找下标操作
{
int i=0;
while(i<=List->Last&&List->Data[i]!=X)
{
i++;
}
if(i>List->Last)
{
return -1;
}
else
{
return i;
}
}
void Insert(int X,int i,int size,Ptrl List)//进行插入操作
{
if(List->Last==size-1)
{
printf("空间已满\n");
return ;
}
if(i<1||i>size-1)
{
printf("要插入位置异常\n");
return ;
}
for(int j=List->Last;j>=i-1;j--)
{
List->Data[j+1]=List->Data[j];
}
List->Data[i-1]=X;
List->Last++;
return ;
}
Ptrl Add(Ptrl List,int i)
{
int j,x;
for(j=0;j<i;j++)
{
scanf("%d",&x);
List->Data[j]=x;
List->Last++;
}
return List;
}
void Delete(int x,Ptrl List)
{
int j,i;
while(j<List->Last&&List->Data[j]!=x)
{
j++;
}
if(j>List->Last)
{
printf("不存在该元素\n");
}
for(i=j;i<=List->Last;i++)
{
List->Data[i]=List->Data[i+1];
}
List->Last--;
}
void print(Ptrl List)//遍历元素
{
int i;
for(i=0;i<=List->Last;i++)
{
printf("%d ",List->Data[i]);
}
}
int main()
{
Ptrl P;
int num,size,j,x;
printf("输入空间大小:");
scanf("%d",&size);
P=Dent(size);
printf("输入存储的元素个数:");
scanf("%d",&num);
P=Add(P,num);
printf("输入要查找的元素:");
scanf("%d",&x);
j=Find(x,P);
if(j==-1)
{
printf("不存在该元素\n");
}
else
{
printf("该元素的下标是%d\n",j);
}
printf("输入要插入的元素、位置:");
scanf("%d %d",&x,&j);
Insert(x,j,size,P);
printf("输入要删除的元素:");
scanf("%d",&x);
Delete(x,P);
printf("线性表的内容:");
print(P);
return 0;
}
0 0
- 用数组实现线性表
- 用数组实现线性表
- 用数组实现线性表
- 用数组实现线性表
- 线性表-数组实现
- 线性表数组实现
- java 用动态数组实现线性表
- C++用数组实现的线性表
- 用数组实现的线性表
- java 数组实现线性表
- 线性表的数组实现
- 线性表实现之一:数组
- 【数据结构】线性表(数组实现)
- java实现线性表(数组实现)
- 线性表的顺序存储结构--用数组实现
- 【C++数据结构学习笔记---线性表】用数组实现线性表
- 线性顺序表(动态数组实现)
- 线性表—由数组实现
- 部署linux服务器
- 【Java学习笔记】06.类和对象
- 字母、数字和点数的识别-类osmo软件开发
- Finding LCM gcd
- ZigBee长地址的使用
- 用数组实现线性表
- 老话常提之 MVP 架构
- 欢迎使用CSDN-markdown编辑器
- kruskal&&prim
- Flume+Kafka+Storm+Redis实时分析系统基本架构
- CCF 201703-1 分蛋糕
- 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- nyoj 28 大数阶乘
- JAVA:MessageFormat格式化文字输出