资源描述:
《顺序表插入删除.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、StatusListInsert_Sq(Sqlist&L,inti,ElemTypee){if(i<1
2、
3、i>L.length+1)returnERROR;q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;returnOK;}//ListInsert_Sq算法2.4:顺序线性表中插入元素ElemType*q,*p;#defineOK1#defineERROR0typedefintstatus;TypedefcharElemType;//-----线性表的动态分配顺序存储结构-----
4、#defineLIST_INIT_SIZE100typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;StatusInitList_Sq(SqList&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);//存储分配失败L.length=0;//空表长度为0L.listsize=LIST_INIT_SIZE;//初始存储容量returnOK;}//InitList_Sqvoidmain(){SqListL;In
5、itList_Sq(L);ListInsert_Sq(L,1,'A');}主函数Disp_Sq(L);Disp_Sq(L);输出函数voidDisp_Sq(SqListL){if(L.length==0)printf("此顺序表为空表!");for(inti=0;i6、.此后在被调用函数中形参的任何值的改变都不会影响到实参.voidmain(){intx=1,y=2;printf(“Inmainfunction:”);printf(“%d,%d”,x,y);swap(x,y);printf(“AfterSwap:”);printf(“%d,%d”,x,y);}voidswap(inta,intb){inttemp;printf(“Inswapfunction:”);temp=a;a=b;b=temp;printf(“%d,%d”,a,b);}传址调用如果函数的某个参数是指针,对这个函数的调用就是传址调用.函数的实参传给形参的是一个地
7、址,从而使得形参的指针和实参的指针指向同一个地址。被调用函数中对形参指针所指向的地址中内容的改变都会影响到实参.voidmain(){intx=1,y=2;printf(“Inmainfunction:”);printf(“%d,%d”,x,y);swap(&x,&y);printf(“AfterSwap:”);printf(“%d,%d”,x,y);}voidswap(int*a,int*b){inttemp;printf(“Inswapfunction:”);temp=*a;*a=*b;*b=temp;printf(“%d,%d”,*a,*b);}引用调用以引用作
8、参数的调用称为引用调用.引用调用完全可以实现传址调用的功能.使用起来像普通变量一样,显得方便自然,维护也非常的方便.voidmain(){intx=1,y=2;printf(“Inmainfunction:”);printf(“%d,%d”,x,y);swap(x,y);printf(“AfterSwap:”);printf(“%d,%d”,x,y);}voidswap(int&a,int&b){inttemp;printf(“Inswapfunction:”);temp=a;a=b;b=temp;printf(“%d,%d”,a,b);}