数据结构——顺序表的几个重要方法的C语言实现
2017-09-18 22:36
627 查看
//数据结构:顺序表 #include <stdio.h> #include <malloc.h> #include <stdlib.h> #define INITSIZE 100 #define ADDSIZE 10 typedef struct SqList{ int *addr; int length; int size; }SqList; void initList(SqList &x){ x.addr=(int*)malloc(sizeof(int)*INITSIZE); if(!x.addr) exit(0); x.length=0; x.size=INITSIZE; }//初始化顺序表 //删除顺序表 int deleteList(SqList &x){ if(!x.addr) return 1; free(x.addr); return 0; } int insertNode(SqList &x,int i,int e){ //排除i不合法的情况 if(i<0||i>x.length) return 1; //排除超出表容量的情况 if(x.length==x.size){ int *newAddr=(int*)realloc(x.addr,sizeof(int)*(x.size+ADDSIZE)); if(!newAddr) exit(0); x.addr=newAddr; } //插入元素 for(int j=x.length-1;j>i-1;j--) x.addr[j+1]=x.addr[j]; x.addr[i]=e; x.length++; return 0; }//在第i个元素后面插入一个元素e int deleteNode(SqList &x,int i){ //排除i不合法的情况 if(i<0||i>x.length) return 1; //删除 for(int j=i;j<x.length;j++) x.addr[j-1]=x.addr[j]; x.length--; return 0; }//删除第i个元素后面的元素 //输出顺序表 void outputList(SqList &x){ for(int i=0;i<x.length;i++) printf("%3d",x.addr[i]); printf("\n"); } int main(){ SqList newList; initList(newList); int m=0; printf("请按顺序输入要插入链表的元素(10个):"); for(int i=0;i<10;i++){ scanf("%d",&m); insertNode(newList,i,m); } outputList(newList); printf("请输入要删除第几个元素:"); scanf("%d",&m); deleteNode(newList,m); outputList(newList); deleteList(newList); return 0; }
相关文章推荐
- [C语言][数据结构]基础的线性表的顺序表示和实现
- C语言 数组的顺序表示与实现 数据结构
- 数据结构之---C语言实现二叉树的顺序存储
- 七、数据结构基础之顺序串C语言实现
- 数据结构之C语言实现顺序表(SeqList)无主函数
- 数据结构中,几种树的结构表示方法(C语言实现)
- C语言实现顺序表-数据结构
- 三、数据结构基础之顺序栈C语言实现
- 一、数据结构基础之顺序表C语言实现
- 数据结构(严蔚敏)之一——顺序表之c语言实现
- 数据结构 学习笔记之:顺序栈的C语言实现
- 数据结构之---C语言实现串的顺序存储
- 数据结构——顺序表(C语言实现)
- 数据结构(严蔚敏)C语言实现---线性表的顺序存储
- 一、数据结构基础之顺序表C语言实现
- (2013-4-21)数据结构实验三:狐狸逮兔问题(方法一:顺序表实现)
- [数据结构]顺序表的C语言简单实现
- c语言实现数据结构中顺序表的源代码
- 数据结构之---c语言实现栈的顺序存储
- C语言 数据结构中求解迷宫问题实现方法