前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >线性表的顺序列表的定义、初始化等操作

线性表的顺序列表的定义、初始化等操作

作者头像
leehao
发布2025-02-10 19:55:18
发布2025-02-10 19:55:18
260
举报
文章被收录于专栏:leehaoleehao

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERR 0 #define MAXSIZE 100 //定义顺序存储结构

typedef struct list{ int elem[MAXSIZE]; int last; }SeqList;

//初始化线性表 SeqList *InitList() { SeqList *L; L = (SeqList *)malloc(sizeof(SeqList)); L->last = 0; return L; }

//查找操作,按内容查找 int Locate(SeqList *L,int e) { int i=0; for (i;i<L->last-1;i++) { if (L->elem[i]==e) { return i+1; } } return -1; }

//插入操作.在表的第i个位置前插入一个新元素

int InsList(SeqList *L,int i,int e) { int k; if (i<1||i>L->last+1) { printf("插入位置不合法!"); return ERR; } if (L->last>=MAXSIZE) { printf("表已满,无法插入!"); return ERR; } for (k=L->last-1;k>=i;k--) { L->elem[k+1]=L->elem[k]; } L->elem[i-1]=e; L->last++; return OK; }

//删除表的第i个元素,并且用指针e返回其值 int DelList(SeqList *L,int i,int *e) { int k; if (i<1||i>L->last) { printf("删除位置不合法!"); return ERR; } *e=L->elem[i-1]; for (k=i-1;k<L->last;k++) { L->elem[k]=L->elem[k+1]; } L->last--; return OK; } //线性表的输出 void print_seqList(SeqList *L) { int j; for (j=1;j<=L->last;j++) { printf("%d\t",L->elem[j-1]); if (j%5==0) { printf("\n"); } } } int main() {

SeqList *L; L=InitList(); int a,j,locate,e; for (j=1;j<10;j++) { printf("请输入要插入的数字:\n"); scanf("%d",&a); InsList(L,a,j); } printf("\n"); printf("————————————————————:\n"); printf("————————————————————:\n"); printf("插入后的列表为:\n"); print_seqList(L); printf("\n"); printf("————————————————————:\n"); printf("————————————————————:\n"); printf("查找元素5是否存在,显示下标:\n"); locate = Locate(L,5); printf("%d\n",locate); printf("————————————————————:\n"); printf("————————————————————:\n"); printf("删除第7个元素,返回被删除的元素:\n"); DelList(L,7,&e); printf("被删除的元素是:%d\n",e); return 0; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档