博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据结构】顺序线性表的几种常用方法
阅读量:6689 次
发布时间:2019-06-25

本文共 2759 字,大约阅读时间需要 9 分钟。

  ①:在线性表中插入数据

int insertlist (seqlist *l, int i, int x)    //在线性表中插入数据{    int k;    if(i < 1 || i > l->last + 1)    {        printf("插入的位置不合法");        return(ERROR);    }    if(l->last >= maxsize-1)    {        printf("线性表已经存满");    }    for(k = l->last; k >= i - 1;k--)    {        l->elem[k + 1] = l->elem[k];    }    l->elem[i-1] = x;    l->last++;        //不要忘记把last加一    return(OK);}

  ②:删除线性表中的元素:

int deletelist(seqlist *l, int i)        //删除元素{    int k;    if(i < 1 || i > l->last + 1)    {        printf("删除位置不合法");        return(ERROR);    }        for(k = i;k < l->last;k++)    {        l->elem[k - 1] = l->elem[k];    }    l->last--;    return(OK);}

  ③:查找线性表元素:

int locate(seqlist *l, int x)        //查找元素{    int i;    int k;    for(i = 0;i < l->last;i++)    {        if(l->elem[i] == x)        {            k = i;        }        else        {            k = 0;        }    }    return k;}

所有代码:

View Code
#include 
#include
#define maxsize 1024#define OK 1#define ERROR 0typedef struct{ int elem[maxsize]; int last; }seqlist; int main(){ int len,i,j; int position,value; int delpos; int locval,loci; seqlist *la; la=(seqlist *)malloc(sizeof(seqlist)); //分配空间 printf("请输入字符串的长度:"); scanf("%d",&len); la->last = len; //设置线性表的长度 printf("请依次输入数:"); for(i=0;i
last;i++) { scanf("%d",&la->elem[i]); //设置值 不要忘记&符号 } printf("输入的数字如下:"); for(j=0;j
last;j++) //输出数据 { printf("%d \n",la->elem[j]); } printf("请输入要插入元素的位置:"); scanf("%d",&position); printf("请输入要插入元素的值:"); scanf("%d",&value); insertlist(la,position,value); printf("添加后的线性表如下:"); for(j=0;j
last;j++) //输出数据 { printf("%d \n",la->elem[j]); } printf("请输入删除元素的位置:"); scanf("%d",&delpos); deletelist(la,delpos); printf("删除后的线性表如下:"); for(j=0;j
last;j++) //输出数据 { printf("%d \n",la->elem[j]); } printf("输入要查找的元素:"); scanf("%d",&locval); loci = locate(la,locval); printf("元素的位置是%d",locval);}int insertlist (seqlist *l, int i, int x) //在线性表中插入数据{ int k; if(i < 1 || i > l->last + 1) { printf("插入的位置不合法"); return(ERROR); } if(l->last >= maxsize-1) { printf("线性表已经存满"); } for(k = l->last; k >= i - 1;k--) { l->elem[k + 1] = l->elem[k]; } l->elem[i-1] = x; l->last++; //不要忘记把last加一 return(OK);}int deletelist(seqlist *l, int i) //删除元素{ int k; if(i < 1 || i > l->last + 1) { printf("删除位置不合法"); return(ERROR); } for(k = i;k < l->last;k++) { l->elem[k - 1] = l->elem[k]; } l->last--; return(OK);}int locate(seqlist *l, int x) //查找元素{ int i; int k; for(i = 0;i < l->last;i++) { if(l->elem[i] == x) { k = i; } else { k = 0; } } return k;}

转载地址:http://kohao.baihongyu.com/

你可能感兴趣的文章
“AI +跨界+技术” 看2018中国会展创新者大会的新观点
查看>>
JavaScript——数据类型转换(显式和隐式)
查看>>
【半月刊 4】前端高频面试题及答案汇总
查看>>
lc686. Repeated String Match
查看>>
RHEL 7.1操作系统安装过程说明
查看>>
基于Python的性能自动化测试框架设计思路和实现
查看>>
dubbo-rpc基本功能
查看>>
CefSharp获取网页源码时卡住长时间没有返回结果
查看>>
刚入门Python的小伙伴,这是腾讯大牛工作中总结的爬虫经验!
查看>>
智能微型机器人可随周围环境“变身”
查看>>
Linux操作系统 MBR扇区故障了怎么办
查看>>
Java网络编程基础(一)
查看>>
在Mac版本下的IDEA中设置代码注释模版
查看>>
我的友情链接
查看>>
Ruby实现二分法查找
查看>>
OA系统报错
查看>>
JavaScript设计模式之一:面向对象的Javascript
查看>>
Web 前沿技术:展示一组极其绚丽的 CSS3 效果
查看>>
唐老师答疑
查看>>
第十二章 简单工厂模式(Simple Facotry)
查看>>