将顺序表里的数据存储位置倒置
来源:互联网 发布:javascript代码怎么用 编辑:程序博客网 时间:2024/05/29 17:26
#include <stdio.h>
#include <stdlib.h>
struct SeqList
{
int MAXNUM;
int n;
int *element;
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m){
PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));
if(palist!=NULL)
{
palist->element=(int*)malloc(sizeof(int)*m);
if(palist->element)
{
palist->MAXNUM=m;
palist->n=0;
return palist;
}
else free(palist);
}
printf("Out of space!!\n");
return NULL;
}
int deleteP_seq(PSeqList palist,int p){
int q;
if(p<0||p>palist->n-1){
printf("Not exist!\n");
return 0;}
for(q=p-1;q<palist->n-1;q++)
palist->element[q]=palist->element[q+1];
palist->n=palist->n-1;
return 1;
}
int insertPre_seq(PSeqList palist,int p,int x){
int q;
if(palist->n>=palist->MAXNUM){
printf("Overflow!\n");
return 0;
}
if(p<0||p>palist->n){
printf("Not exist!\n");return 0;
}
for(q=palist->n-1;q>=p-1;q--){
palist->element[q+1]=palist->element[q];}
palist->element[p]=x;
palist->n=palist->n+1;
return 1;
}
int main()
{
int m,i,p;
PSeqList palist;
printf("Please enter the double quantity of element that You hope the Sequence List has:\n");//输入你希望顺序表能存最大元素个数的双倍字数
scanf("%d",&m);
//调用函数createNullList_seq
palist=createNullList_seq(m);
for(i=0;i<m/2;i++)
{
palist->element[i]=i;
palist->n++;
}
for(i=0;i<m/2;i++)
{
printf("%d,",palist->element[i]);
}
printf("\n");
printf("After overturn:");
printf("\n");
//add the overturn data to m/2~m-1
for(i=m/2;i<m;i++)
{
palist->element[i]=palist->element[m-1-i];
palist->n++;
}
for(i=m/2;i<m;i++)
{
printf("%d,",palist->element[i]);
}
//.......
//use m/2~m-1 data to represent the 0~m/2-1 data
for(i=0;i<m/2;i++)
{
palist->element[i]=palist->element[m/2-i];
}
//delete m/2+1~m-1 data
#include <stdlib.h>
struct SeqList
{
int MAXNUM;
int n;
int *element;
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m){
PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));
if(palist!=NULL)
{
palist->element=(int*)malloc(sizeof(int)*m);
if(palist->element)
{
palist->MAXNUM=m;
palist->n=0;
return palist;
}
else free(palist);
}
printf("Out of space!!\n");
return NULL;
}
int deleteP_seq(PSeqList palist,int p){
int q;
if(p<0||p>palist->n-1){
printf("Not exist!\n");
return 0;}
for(q=p-1;q<palist->n-1;q++)
palist->element[q]=palist->element[q+1];
palist->n=palist->n-1;
return 1;
}
int insertPre_seq(PSeqList palist,int p,int x){
int q;
if(palist->n>=palist->MAXNUM){
printf("Overflow!\n");
return 0;
}
if(p<0||p>palist->n){
printf("Not exist!\n");return 0;
}
for(q=palist->n-1;q>=p-1;q--){
palist->element[q+1]=palist->element[q];}
palist->element[p]=x;
palist->n=palist->n+1;
return 1;
}
int main()
{
int m,i,p;
PSeqList palist;
printf("Please enter the double quantity of element that You hope the Sequence List has:\n");//输入你希望顺序表能存最大元素个数的双倍字数
scanf("%d",&m);
//调用函数createNullList_seq
palist=createNullList_seq(m);
for(i=0;i<m/2;i++)
{
palist->element[i]=i;
palist->n++;
}
for(i=0;i<m/2;i++)
{
printf("%d,",palist->element[i]);
}
printf("\n");
printf("After overturn:");
printf("\n");
//add the overturn data to m/2~m-1
for(i=m/2;i<m;i++)
{
palist->element[i]=palist->element[m-1-i];
palist->n++;
}
for(i=m/2;i<m;i++)
{
printf("%d,",palist->element[i]);
}
//.......
//use m/2~m-1 data to represent the 0~m/2-1 data
for(i=0;i<m/2;i++)
{
palist->element[i]=palist->element[m/2-i];
}
//delete m/2+1~m-1 data
}
//此程序中顺序表的值是自定义的,如果想自己输入数据,可以通过scanf函数实现,欢迎来信讨论;
//程序可能不够简洁化,欢迎大佬指点解答
0 0
- 将顺序表里的数据存储位置倒置
- 将Laravel 数据表里的数据导出成 Seeder 文件
- [VB.NET]如何将Access数据库里的a表里的部分数据移到b表里
- mysql 将一个表里面的数据更新到另一个表里面
- 将Oracle表里的数据导出生成insert into 脚本
- 实现将SQLServer表里的数据导出为insert脚本
- 将一个三位数的位置交换顺序
- 将字符串里词顺序倒置
- JAVA数据的存储位置
- 顺序表的就地倒置
- 数据存储的字节顺序
- 一般情况下的数据存储顺序
- CUDAArray的数据存储顺序
- 查找表里重复的数据
- 清空表里的数据
- 将一个数组中的数据按相反的顺序存储(将数组中的数据逆序输出)
- C语言用指针实现将字符串里的单词顺序倒置
- 将一个表的数据的某些字段更新到另一个表里面的某些字段
- Maven初次使用之问题整理
- 二叉排序数的构造-理论
- Redis:RDB重写和AOF重写
- plsql可以查到数据,但是程序查不到
- Spring Data JPA
- 将顺序表里的数据存储位置倒置
- 怎么用思维导图辅助演讲
- Linux Socket Basic API
- 第一章:温故而知新
- JavaScript—变量提升、函数提升
- 新浪微博评论爬虫小DEMO
- 讲解MySQL中<=>操作符的用法
- 阿里巴巴五大移动/前端项目开源项目
- JavaScript中判断对象类型的种种方法