本文共 783 字,大约阅读时间需要 2 分钟。
1. 问题描述:
往递增的线性表中插入一个元素使之插入后的线性表还是递增的
2. 思路分析:
先要对线性表进行初始化,使用一个for循环即可,然后查找出线性表中第一个比当前要插入的元素大的位置,然后将元素插入到前面就可以了
具体的代码如下:
#include#define maxSize 11using namespace std;//采用顺表表的方式来进行存储(数组) typedef struct Sqlist { int data[maxSize]; int length;}Sqlist;Sqlist L;int findElem(Sqlist L, int x) { int i; for(i = 0; i < L.length; i++){ if(L.data[i] >= x){ return i; } }}void insertElem(Sqlist &L, int x){ int p, i; p = findElem(L, x); for (i = L.length - 1; i >= p; --i) L.data[i + 1] = L.data[i]; L.data[p] = x; ++(L.length);}int main() { L.data[maxSize]; for(int i = 0; i < 10; i++){ L.data[i] = i; } L.length = 10; for(int i = 0; i < L.length; i++){ cout << L.data[i]; } cout << endl; insertElem(L, 3); for(int i = 0; i < L.length; i++){ cout << L.data[i]; } return 0;}
转载地址:http://wewg.baihongyu.com/