线性表基本功能的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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 泥石流来了怎么办教案 墙壁插座不通电怎么办 当前目录不能用怎么办 海鲜过敏怎么办没有药 哺乳后胸变小怎么办 有脑出血前兆该怎么办 体检发现甲状腺结节怎么办 月子里宝宝感冒怎么办 10天新生儿感冒怎么办 20天新生儿感冒怎么办 新生儿20天鼻塞怎么办 25天新生儿感冒怎么办 42天新生儿感冒怎么办 上呼吸道感染怎么办比较好 小猫咪太调皮怎么办 水晶彩泥弄到衣服上怎么办 进境动植物检疫许可怎么办 跳舞不会听拍子怎么办 税盘丢了注销公司怎么办 认缴资金不到位怎么办 同一单元有凶宅怎么办 有地皮没房产证怎么办 社保资金被侵吞怎么办? 集体计件手脚慢怎么办 发票当月没用完怎么办 非工业用地怎么办环评 商标注册途中英文错误怎么办 孩子的英文不好怎么办 高盛英文不好怎么办 去美国英文不好怎么办 去越南不会英语怎么办 法斗得了毛囊炎怎么办 头发里有毛囊炎怎么办 笔记本画cad慢怎么办 面试打不出问题怎么办 ai撤销多了怎么办 卖钢材没客户怎么办 手抓饼煎的很硬怎么办 微信朋友圈侵权怎么办 tekla工具栏显示不全怎么办 收银员收到假钱怎么办