数组指定位置添加元素_数据结构--顺序表的9种基本运算,初始化,销毁,判断是否为空表,长度,求指定位置的元素值......
生活随笔
收集整理的這篇文章主要介紹了
数组指定位置添加元素_数据结构--顺序表的9种基本运算,初始化,销毁,判断是否为空表,长度,求指定位置的元素值......
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
成功實現后的示意圖為:
代碼為:
// 線性表-順序表.cpp : 此文件包含 "main" 函數。程序執行將在此處開始并結束。 //順序表的9種基本運算 #include "pch.h" #include <iostream> #include "malloc.h" //順序表,使用malloc函數動態分配空間 #define MaxSize 10 #define ERROR -1 #define OVERFLOW -2 typedef int ElemType ;typedef struct sqList {ElemType data[MaxSize];int length; }sqlist,*SqList;//初始化線性表 void InitList(SqList &L) {L = (SqList)malloc(sizeof(sqlist));L->length = 0;for (int i = 0; i < MaxSize; i++){L->data[i] = 0;//初始化順序表中的值,賦值為0} } //創建一個順序表 void CreateSqList(SqList &L) {int i;printf("請問您想輸入幾個數字:");scanf("%d",&i);if (i<1 || i>MaxSize){printf("輸入有誤");}else{for (int j = 0; j<i ; j++){int num;printf("請輸入一個數字:");scanf("%d", &num);L->data[j] = num;L->length++;}} }//銷毀一個線性表 void DestroyList(SqList &L) {free(L); }//判斷線性表是否為空表 bool ListEmpty(SqList L) {if (L->length==0){printf("為空表rn");return true;}else{printf("不為空表rn");return false;} }//求線性表的長度 int ListLength(SqList L) {return L->length; }//插入一個數據元素 int ListInsert(SqList &L, int i, ElemType e) {if (i<1 || i>L->length + 1) return ERROR;if (L->length>=MaxSize){return OVERFLOW;}else{for (int j = L->length; j >= i; j--){L->data[j] = L->data[j - 1];}L->data[i - 1] = e;L->length++;printf("插入成功rn");return L->length;}} //求線性表中第i個位置的元素的值,并存放在e中 ElemType GetElem(SqList L, int i, ElemType &e) {if (i<1||i>L->length){printf("輸入錯誤rn");return ERROR;}else{e = L->data[i - 1];return e;} }//定位查找,找出線性表與e相等的元素的邏輯位序 void LocateElem(SqList L, ElemType e) {for (int i = 0; i < L->length; i++){if (L->data[i] == e){printf("查找成功,存在,是第%d個元素rn",i+1);}} } //刪除某個元素 ElemType ListDelete(SqList L, int i, ElemType &e) {if (i<1 || i>L->length) return ERROR;e = L->data[i - 1];for (int j =i; j <L->length; j++){L->data[j - 1] = L->data[j];}L->length--;printf("成功rn");return 1; } //遍歷整個順序表 void DispList(SqList L) {printf("rn*********************整個順序表的值********************************rn");for (int i = 0; i < L->length; i++){printf("第%d個數字為%drn",i+1,L->data[i]);}printf("rn****************************************************rn"); }int main() {SqList L;printf("----初始化一個順序表------rn");InitList(L);printf("-----建立一個順序表------rn");CreateSqList(L);DispList(L);printf("------判斷順序表是否為空值------rn");ListEmpty(L);printf("-----求線性表的長度-------------rn");int length = ListLength(L);printf("線性表長度為:%drn", length);printf("---------在第2個位置插入一個元素666------rn");ListInsert(L,2,666);DispList(L);printf("------求第3個元素的值:-----rn");int i = 0;GetElem(L,3,i);printf("%drn", i);DispList(L);printf("-------查找等于666的元素是否存在------rn");LocateElem(L, 666);printf("----------刪除第3個元素------------rn");int m = 0;ListDelete(L,3,m);printf("被刪除的元素為:%drn",m);DispList(L);DestroyList(L); }更多優質內容,請訪問網站:www.biocoder.cn
關注微信公眾號:生物信息與python獲取最新資訊
總結
以上是生活随笔為你收集整理的数组指定位置添加元素_数据结构--顺序表的9种基本运算,初始化,销毁,判断是否为空表,长度,求指定位置的元素值......的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10+deepin双系统安装方法(
- 下一篇: html调用xfplugin,使用多设备