线性表基本功能的c语言实现
来源:互联网 发布:caj什么软件打开 编辑:程序博客网 时间:2024/05/29 03:17
#include<stdio.h>#define false 0#define ok 1#define maxsize 10//定义了线性表的结构typedef struct { int list1[maxsize]; int length;}sqlist;//初始化线性表int initlist(sqlist *l){ l->length = 0; return ok;}//向线性表插入数据int listinsert(sqlist *l, int i, int e){ int k; if (i>l->length + 1 || i<1 || i>maxsize) //前两个表示i插入的位置不对,最后一个表示线性表满了 return false; if (i<l->length) //如果数据不在表尾,后面的数据后移 { for (k = l->length-1; k>=i-1; k--) l->list1[k+1] = l->list1[k]; } l->length++; l->list1[i - 1] = e; return ok;}//从线性表中删除数据,删除l中第i个元素并返回给eint listdelete(sqlist *l, int i, int *e){ int k; if (i<1 || i>l->length) return false; *e = l->list1[i - 1]; if (i<l->length) { for (k = i; k<l->length; k++) l->list1[k - 1] = l->list1[k]; } l->length--; return ok;}//查询线性表,将l中第i个元素返回给eint getelem(sqlist l, int i, int *e){ if (i >= l.length) return false; else { *e = l.list1[i-1]; return ok; }}//显示线性表int seelist(sqlist l){ int i; for (i = 0; i < l.length; i++) printf("%4d", l.list1[i]); return ok;}int main(void){ int i,data; sqlist s1; i = initlist(&s1); if (i == 1) { puts("新的线性表创建成功,请输入前五个整数"); for (i = 0; i < 5; i++) { listinsert(&s1, i+1, i); } } seelist(s1); listdelete(&s1, 4, &data); printf("\n被删除的元素是%d", data); printf("\n删除元素后的线性表是\n"); seelist(s1); return 0;}
此处实现了线性表的插入、删除、查询、显示的功能。
初步涉及结构的调用,一定要注意函数定义和调用结构,如果需要改变结构内的值,函数的参数需使用指针,否则直接调用实例,实例就和以前普通的变量a调用方法一样。比如插入操作改变了s1,这个函数就是int listdelete(sqlist *l, int i, int *e),此处l为指针;显示不需要改变s1,所以int seelist(sqlist l)。(此处指参数只是普通变量,而不是想修改的本身就是指针)
0 0
- 线性表基本功能的c语言实现
- c语言单向链表的基本功能的实现
- 栈的基本功能实现(C语言)
- 线性表的顺序实现(C语言)
- 线性表的顺序实现(c语言)
- 线性表的C语言实现
- C语言线性表的实现
- 线性表的C语言实现
- 线性链表的c语言实现
- C语言中线性表的实现
- 线性表的实现(C语言)
- 【C语言】实现Linux下的cp命令的基本功能
- 【C语言】实现Linux下的last命令的基本功能
- 数据结构C 语言描述——实现栈的基本功能
- c语言实现单链表的及各项基本功能
- 小游戏:扫雷 (C语言实现扫雷的基本功能)
- C语言实现线性表
- 线性表 C语言实现
- unity C# 含有实体字符的字符串转换成正常的字符串
- 用Batch和adb做App控制器
- Apache性能优化
- JQuery Mobile 学习
- 进程间通信--IPC
- 线性表基本功能的c语言实现
- & | 布尔
- python 多线程就这么简单
- 使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器
- TimesTen与Redis的对比
- ScheduledExecutorService执行周期性或定时任务
- PAT 乙级 1029. 旧键盘(20) Java版
- vue.js总结学习
- ruby 数组的使用