线性表各种操作的实现
2015-09-29 12:08
295 查看
#include<stdio.h>
#include<string.h>
#define MAXSIZE 100
typedef struct {
int ListData[MAXSIZE];
int length;
}SeqList;
void SeqListInit(SeqList* sl); //初始化线性表
int SeqListLength(SeqList* sl); //返回线性表长度
int SeqListAdd(SeqList* sl, int data); //添加元素
int SeqListInsert(SeqList* sl,int data, int n); //插入元素
int SeqListDelete(SeqList* sl, int n); //删除指定位置的元素
int* SeqListFindByNum(SeqList* sl, int n); //根据指定序号返回元素
int SeqListAll(SeqList* sl); //遍历线性表
void SeqListInit(SeqList* sl){
sl->length=0;
}
int SeqListLength(SeqList* sl){
return (sl->length);
}
int SeqListAdd(SeqList* sl, int data){
if(sl->length>=MAXSIZE){
printf("线性表已满\n");
return 0;
}
sl->ListData[sl->length]=data;
++(sl->length);
return 1;
}
int SeqListInsert(SeqList* sl,int data, int n){
int i;
if(sl->length>=MAXSIZE){
printf("线性表已满\n");
return 0;
}
if(n>sl->length||n<0){
printf("插入位置错误\n");
return 0;
}
for(i=(sl->length-1);i>=n;--i){
sl->ListData[i+1]=sl->ListData[i];
}
sl->ListData
=data;
++(sl->length);
return 1;
}
int SeqListDelete(SeqList* sl, int n){
int i;
if(n>sl->length||n<0){
printf("删除位置错误\n");
return 0;
}
for(i=n;i<sl->length;++i){
sl->ListData[i]=sl->ListData[i+1];
}
--(sl->length);
return 1;
}
int* SeqListFindByNum(SeqList* sl, int n){
if(n>sl->length||n<0){
printf("位置错误\n");
return 0;
}
return &(sl->ListData
);
}
int SeqListAll(SeqList* sl){
int i;
for(i=0;i<sl->length;++i){
printf("%d\n",sl->ListData[i]);
}
}
int main()
{
SeqList sl;
SeqListInit(&sl);
SeqListAdd(&sl,1);
SeqListAdd(&sl,2);
SeqListAll(&sl);
}
#include<string.h>
#define MAXSIZE 100
typedef struct {
int ListData[MAXSIZE];
int length;
}SeqList;
void SeqListInit(SeqList* sl); //初始化线性表
int SeqListLength(SeqList* sl); //返回线性表长度
int SeqListAdd(SeqList* sl, int data); //添加元素
int SeqListInsert(SeqList* sl,int data, int n); //插入元素
int SeqListDelete(SeqList* sl, int n); //删除指定位置的元素
int* SeqListFindByNum(SeqList* sl, int n); //根据指定序号返回元素
int SeqListAll(SeqList* sl); //遍历线性表
void SeqListInit(SeqList* sl){
sl->length=0;
}
int SeqListLength(SeqList* sl){
return (sl->length);
}
int SeqListAdd(SeqList* sl, int data){
if(sl->length>=MAXSIZE){
printf("线性表已满\n");
return 0;
}
sl->ListData[sl->length]=data;
++(sl->length);
return 1;
}
int SeqListInsert(SeqList* sl,int data, int n){
int i;
if(sl->length>=MAXSIZE){
printf("线性表已满\n");
return 0;
}
if(n>sl->length||n<0){
printf("插入位置错误\n");
return 0;
}
for(i=(sl->length-1);i>=n;--i){
sl->ListData[i+1]=sl->ListData[i];
}
sl->ListData
=data;
++(sl->length);
return 1;
}
int SeqListDelete(SeqList* sl, int n){
int i;
if(n>sl->length||n<0){
printf("删除位置错误\n");
return 0;
}
for(i=n;i<sl->length;++i){
sl->ListData[i]=sl->ListData[i+1];
}
--(sl->length);
return 1;
}
int* SeqListFindByNum(SeqList* sl, int n){
if(n>sl->length||n<0){
printf("位置错误\n");
return 0;
}
return &(sl->ListData
);
}
int SeqListAll(SeqList* sl){
int i;
for(i=0;i<sl->length;++i){
printf("%d\n",sl->ListData[i]);
}
}
int main()
{
SeqList sl;
SeqListInit(&sl);
SeqListAdd(&sl,1);
SeqListAdd(&sl,2);
SeqListAll(&sl);
}
相关文章推荐
- docker-management遇到的一些问题
- 学生选课系统(2)-业务流程图
- Ubuntu安装rmagick
- HDU5475 An easy problem 线段树单点更新
- 在类里面获取屏幕的宽度
- [转]500强公司培养员工必须熟练掌握的七个管理工具
- springmvc的ModelAttribute注解
- 修改eclipse界面的颜色
- 希望能被相关人看到,在百度知道 的提问被强奸了!
- 树莓派控制SG90舵机
- 野生程序员的故事
- Android最火框架XUtils的使用详解
- 设计师必备!10个包罗万象的灵感发掘网站
- 微信音乐回复时出现“链接无效,无法播放”的情况
- PHP-MySQL不能插入中文解决办法
- Node.js实践第一天
- html5 音频和视频(audio And video)
- iOS开发实习期间get的技巧
- Nodejs学习<2>
- ubuntu安装MySQL