线性表顺序存储完整代码

//1.顺序存储


#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MAXSIZE 20
#define ERROR -1typedef int Position;
typedef int ElementType;typedef struct LNode* PtrToLNode;
struct LNode
{ElementType Data[MAXSIZE];Position Last;
};
typedef PtrToLNode List;List L;**//1.初始化**
List MakeEmpty()
{L = (List)malloc(sizeof(struct LNode));L->Last = -1;return L;
}

//2.创建顺序表


void CreateList()
{int i = 0, data = 0;printf("输入一组正整数,以-1结束:\n");scanf_s("%d", &data);while (data != -1 && L->Last < MAXSIZE){L->Data[i] = data;L->Last++;i++;scanf_s("%d", &data);}printf("创建成功!\n");if (L->Last == MAXSIZE)printf("表满!");}

//3.查找


Position Find(ElementType X)
{Position i = 0;while (i <= L->Last && L->Data[i] != X)i++;if (i > L->Last)return ERROR;//查找失败elsereturn i;//查找成功返回X的位置,即i
}

//4.插入


bool Insert( ElementType X, int i)//在第i(i下标为i-1)个元素前插入新的元素 X
{Position j;if (L->Last == MAXSIZE - 1)printf("表满");if (i<1 || i>L->Last + 2){printf("插入位序不合法");return false;}for (j = L->Last; j >= i + 1; j--){L->Data[j + 1] = L->Data[j];//将位序i及以后元素往后移动}L->Data[i - 1] = X;L->Last++;return true;
}

//5.删除


bool Delete(int i)//从L中删除指定位序i的元素,i下标为i-1
{Position j;if (i<1 || i>L->Last + 1){printf("输入该位序不合法");return false;}for (j = i; j <= L->Last; j++)L->Data[j - 1] = L->Data[j];L->Last--;return true;
}

//主函数


int main()
{int choice;while (1){printf("########################\n");printf("1.初始化线线性表\n");printf("2.创建线性表\n");printf("3.查找\n");printf("4.插入\n");printf("5.删除\n");printf("0.退出\n");printf("########################\n");printf("你的选择是:\n");scanf_s("%d", &choice);switch (choice){case 1:{printf("1.初始化线线性表...\n");MakeEmpty();if (L->Last == 1){printf("初始化成功!\n");printf("线性表的长度:%d\n", L->Last);}break;}case 2:{printf("2.创建线性表...\n");CreateList();break;}case 3:{printf("3.查找...\n");int x_1;//数值printf("输入数值:\n");scanf_s("%d\n", &x_1);Find(x_1);if (Find(x_1) == -1)printf("查找失败\n");elseprintf("查找成功!位置是%d\n", Find(x_1)+1);break;}case 4:{printf("4.插入...\n");int x_2, position_1;printf("输入数值:\n");scanf_s("%d\n", &x_2);printf("输入位置:\n");scanf_s("%d\n", &position_1);Insert(x_2, position_1);if (Insert(x_2, position_1) == true)printf("成功!\n");if (Insert( x_2, position_1) == false)printf("失败!\n");break;}case 5:{printf("5.删除...\n");int position_2;printf("输入位置:\n");scanf_s("%d\n", &position_2);Delete(position_2);if (Delete(position_2) == true)printf("成功!\n");if (Delete(position_2) == false)printf("失败!\n");break;}case 0:{return 0;break;}default:printf("选择有错,请重新选择\n");break;}scanf_s("%c", &choice);}return 0;
}

#########C语言小白还有很多不足,欢迎大家批评指正######

线性表顺序存储完整代码相关推荐

  1. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

  2. 线性表定义 线性表顺序存储结构

    写在前面:本文章来自于在学习过程中的总结,供大家参考.因水平有限,博客中难免会有不足,恳请大佬们不吝赐教! 文章目录 线性表的定义 线性表的顺序存储结构 线性表顺序存储结构的优缺点 线性表的基本操作 ...

  3. 线性表顺序存储结构图书管理

    线性表顺序存储结构图书管理 一开始看书里面的线性表的顺序存储结构,感觉简单,觉得动态链表才能做出一点东西,但是顺序存储不仅于此,也能做出来.顺序结构相比链式结构,内容上有较大差异,各有难点 文章目录 ...

  4. 数据结构例程——线性表顺序存储的应用

    本文是数据结构基础系列网络课程(2):线性表中第6课时线性表顺序存储的应用中所讲的例程. 例:删除元素 问题:已知长度为n的线性表A采用顺序存储结构,设计算法,删除线性表中所有值为x的数据元素. 要求 ...

  5. 线性表顺序存储的基本操作方法(C语言)

    好久没有用C了,呵呵,差不多有2年了,哎,当时努力学C的时候还是因为考研的呢,考上之后就再没有用了.现在重新拿起,感觉不一样. 来个简单的,实现严蔚敏版数据结构中ADT规定的基本操作: 首先一个定义常 ...

  6. 线性表 :: 顺序存储结构的实现

    线性表 :: 顺序存储结构的实现 说明:本文属于读书笔记.笔者将以讲述的方式表达全片文章.故文中提到的某些字词是非正式术语,只是笔者本人的理解性词语. 线性表简介:想要了解点击此处 目录 顺序存储结构 ...

  7. 线性表顺序存储的一些操作(初始化,添加,删除)

    最近有时间学一些自己想学的,就找来看看数据结构.看的是大话数据结构.之前学数据结构是大一时候,现在看这个还可以,没那时候学的累.但是还是需要进行一些总结,以免自己会忘记. 虽然大部分和书上差不多,但是 ...

  8. 数据结构—线性表顺序存储插入和删除操作

    线性表的操作:1.InitList(*L):初始化操作,建立一个空的线性表L 2.ListEmpty(L):判断线性表是否为空,如果为空,返回true,否则返回false 3.ClearList(*L ...

  9. 线性表顺序存储 - Java实现

    顺序结构存储实现 package com.kiger.Sequence;import java.util.Arrays;/*** @ClassName SequenceList* @Descripti ...

最新文章

  1. 数据结构与算法:14 Leetcode同步练习(五)
  2. xcode 选择configuraftions 打包_分利宝IOS自动化打包
  3. C++Primer 第一章 快速入门 学习
  4. ASP 代码给 ASP 页加密码保护
  5. python os模块 常用命令
  6. 全国计算机等级考试题库二级C操作题100套(第81套)
  7. linux多行变一列,多行转为一列
  8. mybatis java类注解式_Spring整合Mybatis注解方式
  9. 魔方阵(奇数,单偶,双偶)
  10. 计算机控制系统课程设计中期报告,课程设计中期报告模板.doc
  11. 迷宫问题,手动模拟栈
  12. Java获取硬盘信息
  13. 测试管理工具QC第一篇-QC安装步骤(史上最详细的图解过程)-第一篇
  14. 注意细节:Javascript中的变量作用域
  15. 计算机网络笔记整理(第七版)谢希仁
  16. 马云回应豪宅谣言;淘宝上线了三架波音747进行拍卖;迪拜投1.4亿美元建模拟火星丨价值早报
  17. 【14】婚礼片剪辑案例【15】电视剧片头剪辑案例
  18. python 函数enumerate用法
  19. 软件测试拿了几个20K offer,分享一波面经
  20. 旅行商问题(TSP)的两种模型

热门文章

  1. 普洱熟茶发霉怎么办?
  2. 追梦算法----拯救公主?
  3. JavaScript 面向对象编程思想
  4. ROS2入门之基本介绍
  5. 腾讯java运营开发面试题_腾讯运营开发面经
  6. 强化学习图鉴|人工智能新兴子领域,分布式强化学习是AI技术未来大规模实用化的关键?
  7. 永硕心理服务云平台专题培训—12期落下帷幕
  8. Centos7.6 安装devstack
  9. 云图说|解析华为云黑科技:图计算技术
  10. 计算机管理在扩展器,tplogin.cn扩展器设置教程(电脑版)