遍历(复习)"/>
C语言线性表顺序存储结构(静态)以及元素的获取、插入、遍历(复习)
/*#################################################
# C语言线性表顺序存储结构(静态)以及元素的获取,插入和删除 #
##################################################*/
#include<stdio.h>
//定义状态值,作为函数的返回值。 OK表示执行成功,ERROR表示执行失败
#define OK 1
#define ERROR 0
//顺序表的最大容量
#define MAXSIZE 20//数据类型,假设为int
typedef int ElemType;
//函数的状态值,用作函数的返回值,判断是否执行成功
typedef int Status;/*##################* 线性表的结构体定义 ###################*/
typedef struct
{//线性表的底层使用数组实现ElemType data[MAXSIZE];//线性表的长度(从1开始)int length;}SqList;/*###########################* 创建一个线性表###########################*/
Status creatList(SqList *list)
{Status status = ERROR;printf("请输入顺序表的长度[1-%d]",MAXSIZE);scanf("%d",&(list->length));for(int i= 0; i < list->length; i++){printf("请输入第%d个元素",i+1);scanf("%d",&(list->data[i]));}printf("顺序表创建完成!\n");return status;
}/*#######################* 遍历一个线性表#######################*/
Status loopList(SqList list)
{printf("线性表遍历结果如下:\n");for(int i = 0; i<list.length;i++){printf("%d ",list.data[i]);}return OK;
}
/*** 向顺序表指定位置插入元素。*/
Status listInsert(SqList *list, int location , ElemType data)
{Status status;if(list->length == 0){printf("顺序表为空,无法插入任何元素");status = ERROR;}else if(list->length >= MAXSIZE){status = ERROR;printf("顺序表已满,无法插入任何元素");}else if(location < 1 || location > list->length+1){printf("插入的位置不在顺序表范围之内");status = ERROR;}else if(location<=list->length){for(int i = list->length; i >= location; i-- ){list->data[i] = list->data[i-1];}list->data[location] = data;list->length++;status = OK;printf("插入成功\n");}else{status = ERROR;printf("插入失败");}return status;
}/*###########################* main函数用于测试程序*#########################*/int main(){SqList myList;creatList(&myList);loopList(myList);listInsert(&myList,14,3);loopList(myList);return 0;}
更多推荐
C语言线性表顺序存储结构(静态)以及元素的获取、插入、遍历(复习)
发布评论