【数据结构】线性表的顺序存储完整程序
来源:互联网 发布:错生网络剧百度云 编辑:程序博客网 时间:2024/06/06 07:27
数据结构,线性表的顺序存储完整程序
#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<iostream.h>#define LIST_INIT_SIZE 100#define LISTNCREMENT 10typedef struct { int *elem; int length; int listsize;}Sqlist;Sqlist InitSList();void DeleteSList(Sqlist &L,int i);void InsertSList(Sqlist &L,int i,int e);void FindList(Sqlist L,int i);void InverseList(Sqlist L);void Print(Sqlist L);void main(){ int i; Sqlist L; L=InitSList(); L.length=5; for(i=0;i<L.length;i++) L.elem[i]=i; printf("original list:\n"); Print(L);// printf("请输入表长: \n");// scanf("%d",&L.length);// printf("表中的元素是:\n");// for(i=0;i<L.length;i++)// scanf("%d",&L.elem[i]); cout<<"~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<"请选择:\n"; cout<<"1.插入元素:\n"; cout<<"2.删除元素:\n"; cout<<"3.查找元素:\n"; cout<<"4.顺序表逆置:\n"; int c,n,e; cin>>c; switch(c) { case 1: cout<<"请输入插入元素的位置n:\n"; cin>>n; cout<<"请输入插入的元素n:\n"; cin>>e; InsertSList( L,n,e); Print(L); break; case 2: cout<<"请输入删除元素的位置n:\n"; cin>>n; DeleteSList(L,n); Print(L); break; case 3: cout<<"请输入查找元素的位置:\n"; cin>>n; FindList(L,n); break; case 4: InverseList(L); break; default: printf("ERROR"); }// DeleteSList(L,2);// Print(L);/// InsertSList( L,2,88);// Print(L);// FindList(L,4);// InverseList(L);}/***********创建顺序表**********/Sqlist InitSList(){ Sqlist L; L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L.elem) exit(0); L.length=0; L.listsize=LIST_INIT_SIZE; return L;}/***************删除元素************/void DeleteSList(Sqlist &L,int i){ int *p,*q; if((i<1)||(i>L.length)) printf("ERROR"); p=&(L.elem[i-1]); q=L.elem+L.length-1; for(++p;p<=q;++p) *(p-1)=*p; L.length--;}/**************插入元素*************************/void InsertSList(Sqlist &L,int i,int e){ int *newbase; int *q,*p; if(i<1||i>L.length+1) printf("ERROR"); if(L.length>=L.listsize) { newbase=(int *)realloc(L.elem,(L.listsize+LISTNCREMENT)*sizeof(int)); if(!newbase) exit(0); L.elem=newbase; L.listsize+=LISTNCREMENT; } q=&(L.elem[i-1]); for(p=&(L.elem[L.length-1]);q<=p;p--) { *(p+1)=*p; } *q=e; L.length++;}/*************查找元素********************/void FindList(Sqlist L,int i){ int *p,e;// printf("请输入查找元素的位置:\n");// scanf("%d",&i); p=&(L.elem[i-1]); e=*p; printf("请输出该位置的元素:\n"); printf("%d",e); printf("\n");}/*********************顺序表逆置******************************/void InverseList(Sqlist L){ int s,i; for(i=0;i<L.length/2;i++) { s=L.elem[i]; L.elem[i]=L.elem[L.length-i-1]; L.elem[L.length-i-1]=s; } cout<<endl; printf("新的顺序表中的元素是:\n"); for(i=0;i<L.length;i++) { printf("%d",L.elem[i]); printf(" ") ;// cout<<" ~ " ; //有问题,printf和cout混用 }}void Print(Sqlist L){ for(int i=0;i<L.length;i++) { printf("%d",L.elem[i]); printf(" "); } printf("\n"); }
0 0
- 【数据结构】线性表的顺序存储完整程序
- 数据结构-线性表-顺序存储结构完整可执行代码
- 【数据结构】线性表的顺序存储结构
- 数据结构之线性表的顺序存储
- 数据结构 线性表的顺序存储
- 数据结构:线性表的顺序存储
- 【数据结构】线性表的顺序存储结构
- 数据结构-线性表的顺序存储
- 数据结构--线性表顺序存储
- 数据结构---线性表---顺序存储
- 线性表的顺序存储实验程序
- 数据结构一 线性表的顺序存储结构
- 跟我学数据结构--线性表的顺序存储
- 大话数据结构一:线性表的顺序存储结构
- 数据结构实验一 线性表的顺序存储实验
- 数据结构:线性表的顺序存储--Java实现
- 数据结构笔记之线性表的顺序存储结构
- 数据结构之线性表的顺序存储结构
- yii2获取用户get,post参数
- Android Launcher加载so库问题
- Android WheelView自定义续更
- Odd Even Linked List
- UIApplicationMain
- 【数据结构】线性表的顺序存储完整程序
- Android常见异常总结
- 我的Android进阶之旅------>解决Error: specified for property 'mergedManifest' does not exist.
- java 集合类型
- 第四章 字典
- oracle的系统和对象权限 查看用户包含的各类权限
- pear安装
- Swift基础(二十三)UIImageView
- 打印调试工具