C++ 循序表(算法)

include

    #include <string>
    using namespace std;

   typedef struct {
      int *elems;
      int length;
       int size;
      }MyStruct;

    void initData(MyStruct &list) {
       list.elems = new int[100];
       list.length = 0;
       list.size = 100;
         }
     void showList(MyStruct &list) {
       cout << "length:"<< list.length <<"-size:" <<list.size << endl;
        for (int i = 0; i < list.length;i++) {
	    cout << list.elems[i] << " ";
      }
       }
     bool assignment(MyStruct &list,int length,int e) {
      if (list.length == list.size) return false;
      list.elems[list.length] = e;
      list.length++;
       return true;
      }
    bool interpolation(MyStruct &list,int i,int val) {
   if (list.length == list.size) return false;
      if (i < 0 && i>100) return false;
           for (int j = list.length - 1; j >=i;j--) {
	     list.elems[j+1] = list.elems[j];
         }
        list.elems[i] = val;
        list.length++;
       return true;
        }

     int main() {
    int count;
    int val;
    MyStruct list;
    initData(list);
    showList(list);
     cout << "请输入新增元素长度" << endl;
    cin >> count;
    for (int i = 0; i < count;i++) {
 	    cout << "输入" << i+1 << "个元素值" << endl;
	    cin >> val;
	if (assignment(list,i,val)) {
		cout << "新增成功" << endl;
	}else{
		cout << "失败" << endl;
	  }
      }
      showList(list);
      cout << "" << endl;
      cout << "输入插入个数与值" << endl;
      cin >> count >> val;
      if (interpolation(list, count, val)) {
	  cout << "插入成功" << endl;
      }else{
	  cout << "插入失败" << endl;
    }
   showList(list);
       system("pause");
       return 0;
    }
posted @ 2019-12-28 17:02  蔺雨轩  阅读(153)  评论(0)    收藏  举报