在正常的输入和删除的情况下,不考虑特殊情况的。
这毕竟是自己第一次实现啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
#include<stdio.h>
#include<malloc.h>
//#define LIST_INIT_SIZE 100;//线性表存储空间的初始分配量
//#define LISTINCREMENT 10;//线性表存储空间的增量
typedef struct xianxing {
int* elem;//空间存储地址
int length;//当前长度
int listsize;//当前分配的存储容量
} SqList,*PSqList;
PSqList InitList(SqList* L);//返回指针地址
bool addValue(PSqList L,int a);//增加一个数字到后面去
void showXianXing(PSqList L);//显示线性表的全部元素
bool deleteLastValue(PSqList L);//删除最后一个元素
bool alertValue(PSqList L,int value);//更改最后一个值
bool insertValue(PSqList L,int posti,int value);//指定一个位子插入
bool deletePosValue(PSqList L,int posti);//指定一个位子的删除
bool CheckIsEmpty(PSqList L);//检查是不是为空
bool clearList(PSqList L);//清空表
int main(void){
// SqList* pSqList = (SqList*)malloc(sizeof(SqList));
SqList* pSqList = NULL;
PSqList initialSqList = InitList(pSqList);
if(initialSqList->listsize>0){
printf("%d\n",initialSqList->listsize);
printf("initial is successful!!!\n");
}
bool isAddRight = addValue(initialSqList,1);
bool isAddRightx = addValue(initialSqList,2);
addValue(initialSqList,3);
addValue(initialSqList,4);
addValue(initialSqList,5);
addValue(initialSqList,6);
addValue(initialSqList,7);
addValue(initialSqList,8);
int ax = 0;
if(isAddRight){
printf("add is successful!!!\n");
ax = initialSqList->elem[1];
printf("##########%d\n",ax);
int b= initialSqList->length;
printf("%d\n",b);
}
showXianXing(initialSqList);
printf("\n");
deleteLastValue(initialSqList);
printf("\n");
showXianXing(initialSqList);
printf("\n");
deleteLastValue(initialSqList);
printf("\n");
showXianXing(initialSqList);
printf("\n");
return 0;
}
//初始化线性列表
SqList* InitList(SqList* L){
L = (SqList*)malloc(sizeof(SqList));//初始化指针
bool isRight = true;
L->elem = (int *)malloc(sizeof(int)*100);
if(!L->elem){
isRight = false;
}
L->length = 0;
L->listsize = 100;
return L;
}
//增加一个值
bool addValue(PSqList L,int a){
bool isRight = true;
int nowLenght = L->length;//当前长度,数组的个数a[5] = {3,2,3,4,3}
int allLenght = L->listsize;//当前可容纳的个数
if(nowLenght >=allLenght){
return false;
}
L->elem[L->length] = a;
L->length = nowLenght +1;
return true;
}
//显示所有值
void showXianXing(PSqList L){
if(L==NULL&&L->length==0){
printf("线性表没有值或者为被初始化");
return ;
}
for(int i=0;i<L->length;i++){
printf("%d ",L->elem[i]);
}
return ;
}
//检查是不是为空
bool CheckIsEmpty(PSqList L){
int nowLength = L->length;
if(nowLength == 0){
return true;
}
return false;
}
//删掉最后一个值
bool deleteLastValue(PSqList L){
L->elem[L->length-1] = NULL;
L->length = L->length -1;
return true;
}
分享到:
相关推荐
数据结构--线性表--思维导图.pdf 该资源主要讲解了数据结构中的线性表,包括线性表的定义、基本操作、顺序表和链表的存储方式、操作效率比较等。 线性表的定义: 线性表是一种逻辑结构,表示元素之间一对一相邻的...
数据结构--线性表的定义和抽象数据类型 线性表是数据结构中的一种基本结构形式,它是具有相同属性的数据元素的一个有限序列。线性表可以用来描述生活中各种各样的序列,如人事档案表、职工工资表、学生成绩表、图书...
数据结构--线性表.cpp
2.C-数据结构-线性表-线性表源码
线性表(linear list)是最基本、最简单、也是最常用的一种数据结构 线性表中数据元素之间的关系是一对一的关系, 即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的 特征1:集合中必存在唯一的一个...
在线性表的应用中将给出的中缀表达式变为后缀表达式并求值 设计一个计算器
数据结构c++ 线性表 单链表 【4】Chapter3 线性表1-顺序表及单链表
2.C-数据结构-线性表-顺序表源码
2.C-数据结构-线性表-顺序表源码
c语言实现的线性表顺序存储结构,包括初始化,设置线性表的值,增,删,改,查。
线性表是数据结构中最基础的一种,它由有限个相同类型元素构成的有序序列。本资源提供了线性表操作的C语言实现,包括源代码和可执行文件,以及一个简单的说明文档。 1. **线性表**: 线性表是由n(n≥0)个相同类型...
线性表是数据结构的基础,它是一个包含n个相同类型数据元素的有限序列,通常表示为(a1, a2, a3, ..., an)。在实际应用中,线性表非常常见,比如数学中的数列、英文字母表或者电话号码簿等。线性表的特征在于每个元素...
### 数据结构之线性表详解 #### 一、线性表概述 线性表作为最基础的数据结构之一,在计算机科学领域扮演着极其重要的角色。它不仅简单直观,而且是许多高级数据结构的基础。 ##### 1. 线性表定义与特征 线性表是...
线性表的链式实现(数据结构-严蔚敏)线性表的链式实现(数据结构-严蔚敏)线性表的链式实现(数据结构-严蔚敏)线性表的链式实现(数据结构-严蔚敏)线性表的链式实现(数据结构-严蔚敏)线性表的链式实现(数据...
数据结构-线性表-单链表的查找、插入、删除.doc
数据结构-线性表输入-输出-插入-删除-查找.doc
"数据结构-线性表-PPT" 数据结构是一门研究非数值计算的程序设计问题的学科,它研究的是计算机存储、表示、操作和保护非数值信息的方法和技术。线性表是数据结构的一种基本结构,它是一种线性结构,只有一个首结点...
本次实验的主题是“数据结构实验报告-线性表-两个有序线性表的归并算法”。实验的主要目的是让学生掌握两个有序线性表的归并算法。具体来说,实验要求学生通过键盘输入数据来建立两个有序线性表,并最终将这两个有序...
CS221 数据结构-全套 PPT 课件 1-引言.ppt 2-线性表.pdf 2-线性表.ppt 3-栈.pdf 3-栈.ppt 4-队列.pdf 4-队列.ppt 数据结构-第二部分.pdf 数据结构-第二部分.ppt 数据结构-第三部分.pdf 数据结构-第三部分.ppt 数据...