C++代码复习(三+)——SeqList顺序表内数据的数组方式实现

    科技2024-08-20  26

    #include <iostream> #define Maxsize 20 using namespace std; typedef struct { int a[Maxsize]; int length; }Seqlist; void InitSeq(Seqlist &L){//初始化列表 L.length = 0; } int InsertSeq(Seqlist& L, int i, int elem)//顺序表,插入位置,插入元素 { if (L.length==Maxsize||i>L.length+1|| i < 0) return 0; for (int k = L.length - 1; k >= i; k--) { L.a[k] = L.a[k - 1]; } L.a[i - 1] = elem; L.length++; return 1; } int main() { int k = 1,add=314; Seqlist L; InitSeq(L); InsertSeq(L, 1, add); cout <<"add的值="<<add <<" add的指针="<< &add<<"\n";; cout <<"顺序表的长度="<< L.length<<"\n"; cout << "第"<<k <<"个元素是"<<L.a[k-1]; }

    与数据的指针方式实现所不同的是,SeqList内的数据为非指针形式声明,因而赋值的过程简单了许多,同时,子函数的参数也简化为输入数值即可。

    注意: 如果数据是指针方式的实现,那么主子程序之间传递的参数必须是指针。否则,如果我们传递数值、常数的话,当我们结束子程序时,在子程序内申请的用来存放数值的local临时地址会被编译器干掉,将不复存在,也就是说数值未被正确传递。

    Processed: 0.011, SQL: 8