20003.数据结构C++ 顺序表
生活随笔
收集整理的這篇文章主要介紹了
20003.数据结构C++ 顺序表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream>
#define MaxSize 20typedef int ElemType;typedef struct {ElemType *elem;int length;
}SqList;bool InitList(SqList& L) {/*初始化順序表,分配空間。*/L.elem = new int [MaxSize];if (!L.elem)return false;L.length = 0;return true;
}bool CreateList(SqList& L) {/*插入數據構建順序表*/int x = 0, i = 0;while (x != -1){if (L.length == MaxSize) {std::cout << "順序表已經滿了" << std::endl;return false;}std::cout << "請輸入插入的元素" << std::endl;std::cin >> x;L.elem[i++] = x;L.length ++;}return true;
}bool PrintList(SqList L) {/*打印順序表中的內容。*/if (L.length == 0)return false;for (int i = 0; i < L.length; i++) {std::cout << L.elem[i] << std::endl;}return true;
}bool GetElem(SqList L, int i, int& e) {// 從列表中取第i個值,并且返回到e中if (i<1 || i>L.length) {return false;}e = L.elem[i - 1];return true;
}int LocateElem(SqList L, int e) {/*輸入需要查找的元素,返回該元素所在的索引值。*/if (!L.elem)return false;for (int i = 1; i < L.length; i++)if (L.elem[i] == e)return i + 1;return -1;
}bool ListInsert_Sq(SqList& L, int i, int e) {/*向順序表中插入一個值。*/if (L.length == MaxSize)return false;for (int j = L.length; j > i; j--)L.elem[j] = L.elem[j - 1];L.elem[i] = e;L.length++;return true;
}bool ListDelete_Sq(SqList& L, int i, int& e) {/*從順序表中刪除一個值。*/if (i<1 || i >L.length)return false;e = L.elem[i];for (int j = i; j < L.length; j++)L.elem[j] = L.elem[j + 1];L.length--;return true;
}int main() {SqList L;// 初始化順序表InitList(L);// 創建順序表CreateList(L);// 打印順序表PrintList(L);// 從表中取數int number;int e;std::cout << "輸入您要查找的序號" << std::endl;std::cin >> number;GetElem(L, number, e);std::cout << e << std::endl;// 從順序表中查找int index;int FindNumber;std::cout << "輸入要查找的元素" << std::endl;std::cin >> FindNumber;index = LocateElem(L, FindNumber);if (index == -1)std::cout << "該順序表中沒有改元素" << std::endl;std::cout << index << std::endl;// 從順序表中插入元素int InsertIndex;int InsertElem;std::cout << "請輸入您要插入的元素的位置" << std::endl;std::cin >> InsertIndex;std::cout << "請輸入您要出入的元素" << std::endl;std::cin >> InsertElem;ListInsert_Sq(L, InsertIndex, InsertElem);PrintList(L);// 從順序表中刪除一個元素int DeleteIndex;int DeleteElem;std::cout << "請輸入您要刪除元素的索引" << std::endl;std::cin >> DeleteIndex;DeleteElem = ListDelete_Sq(L, DeleteIndex, DeleteElem);std::cout << "刪除的元素是" << DeleteElem << std::endl;return true;
}
?
總結
以上是生活随笔為你收集整理的20003.数据结构C++ 顺序表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸡尾酒会公式\帕金森定律(Parkins
- 下一篇: c++ 工厂模式简介和应用场景