赞
踩
目录
练习: 建立一个顺序表L={21,23,14,5,56,17,31},然后在第3个位置插入元素68,最后依次显示当前线性表中的数据元素
引入头文件,#deifne定义,typedef定义,函数声明
- #define _CRT_SECURE_NO_WARNINGS 1
- #pragma once
- #include <stdio.h>
- #include <stdbool.h>
-
- #define MaxSize 10//顺序表最大容量
-
- typedef int DataType;//方便使插入元素的类型与数组list中的类型相同
- typedef struct
- {
- DataType list[MaxSize];
- int size;//顺序表当前长度
- }SqList;
-
- void ListInitiate(SqList* L);//初始化顺序表
- bool ListInsert(SqList* L, int i, DataType a);//顺序表给第i个元素前插入元素
- int ListLength(SqList* L);//返回顺序表L的当前元素个数
- bool ListGet(SqList* L, int i, DataType* y);//从顺序表中取元素,带回y
顺序表的操作
- #include "SqList.h"
-
- void test()
- {
- DataType y = 0;
- int i = 0;
- SqList L;
- ListInitiate(&L);//初始化顺序表,i>=0
-
- //1
- DataType arr[] = {21,23,14,5,56,17,31};
- int sz = sizeof(arr) / sizeof(arr[0]);
- for (i = 0; i < sz; i++)
- {
- ListInsert(&L, i, arr[i]);//顺序表给第i个元素前插入元素
- }
-
- // 2
- //DataType n = 0;
- // for (i = 0; i < 7; i++)
- //{
- // scanf("%d", &n);
- // ListInsert(&L, i, n);//顺序表给第i个元素前插入元素
- //}
-
-
-
- ListInsert(&L, 2, (DataType)(68));
- for (i = 0; i < ListLength(&L); i++)//返回顺序表L的当前元素个数
- {
- ListGet(&L, i, &y);//从顺序表中取元素,带回y
- printf("%d ", y);
- }
- }
-
- int main()
- {
- test();
- return 0;
- }
顺序表函数具体实现
- #include "SqList.h"
-
- void ListInitiate(SqList* L)//初始化顺序表
- {
- for (int i = 0; i < MaxSize; i++)
- {
- L->list[i] = 0;
- }
- L->size = 0;
- }
-
- bool ListInsert(SqList* L, int i, DataType a)//顺序表给第i个元素前插入元素
- {
- if (i < 0 || i > L->size)
- {
- printf("参数i不合法!\n");
- return false;
- }
- else if (L->size >= MaxSize)
- {
- printf("顺序表已满无法插入!\n");
- return false;
- }
- else
- {
- for (int j = L->size; j > i; j--)
- {
- L->list[j] = L->list[j - 1];
- }
- L->list[i] = a;
- L->size++;
- return true;
- }
- }
- int ListLength(SqList* L)//返回顺序表L的当前元素个数
- {
- return L->size;
- }
-
- bool ListGet(SqList* L, int i, DataType* y)
- {
- if (i < 0 || i >= L->size)
- {
- printf("参数i不合法!\n");
- return false;
- }
- else
- {
- *y = L->list[i];
- return true;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。