資源描述:
《解釋程序-樣例》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、//輸入輸出的頭文件//動態(tài)分配動態(tài)空間的頭文件typedefstruct//以下四行是定義結(jié)構(gòu)體類型#defineMAXSIZE100//宏定義,定義MAXSIZE為100的個常數(shù)在程序中遇到MAXSIZE都代表是100這個常數(shù)#inelude"stdio.h〃#inelude"malloc.h"{intdata[MAXSIZE];〃結(jié)構(gòu)體類型的一個成員,叫data,是整形數(shù)組,放順序表的元素intlength;}SeqList;SeqList*L;intn;〃結(jié)構(gòu)體類型的一個成員,叫l(wèi)ength,是順序表的長度//用typedef
2、語句給結(jié)構(gòu)體類型換名字,叫SeqList〃定義變量L,它為結(jié)構(gòu)體類型的指針變量//定義整形變量年n,表示順序表實際的元素個數(shù)SeqList*Sq_CreatList(SeqList*L)//自定義函數(shù)Sq_CreatList,該兩數(shù)的功能是創(chuàng)九一個順序表,函數(shù)的返回值為結(jié)構(gòu)體類型的指針形參為SeqList*L,表示順序表{inti;//定義整形變量,計數(shù)用L=(SeqList*)malloc(sizeof(SeqList));//動態(tài)分配存儲空間,分配的人小為Seqlist結(jié)構(gòu)體大小,并用指針L指向這個內(nèi)存空間if(L==NULL)r
3、eturn(L);〃判斷空間是否分配11,沒分配上就返回空值L->length^;//分配空間成功后,鏈表的長度初始化為0printf(z,pleaseinputthenumberforn,z);//在屏幕上輸出這句話,提示用八要輸入順序表的實際元索個數(shù)printf("n二");scanf&n);//輸入你要創(chuàng)建順序表的長度for(i二1;i<=n;i++)//循壞輸入n個數(shù)據(jù),依次送給順序表L{printf(z,L->data[%d]i);scanf(z,%dz,,&L->data[i]);//錄入元索,送給順序表的data域,
4、//每錄入一個元素,順序表的表長加?//創(chuàng)建結(jié)束,返回順序表,值為LL->length++;};voiddisplay(SeqList*L)數(shù)據(jù),沒有返回值{inti;return(L);//口定義函數(shù)display,該函數(shù)的功能是顯示順序表的//定義整形變量,計數(shù)用for(i=l;i<=L->length;i++)//循環(huán)length次,依次輸出順序表的data域數(shù)據(jù)值printf("%5d",L->data[i]);printf(/?zz);〃輸出換行printf(,zthelengthoflistis:%d",L->le
5、ngth);//輸出顯示順序表的長度lengthSeqList*sq_insert(SeqList*1,inti,intx)//白定義函數(shù)sq_insert,該函數(shù)的功能是插入,在順序表1中,在第i個位置插入一個值為x的。函數(shù)的返回值為結(jié)構(gòu)體類型的指針變量{intj;//定義整形變量,計數(shù)用if(KIII1>1->length)//判斷是否進行插入,假如插入的位置小于1或大于表的長度,就輸出“插入位置錯誤”,返回順序表1{printf("theinsertpostioniserrror!/z);return(1);};if(l->
6、length==MAXSIZE)//判斷是否進行插入,假如表的實際長度等丁程序約定的最人長度,順序表已經(jīng)滿了,無法插入返回順序表1{printf(/zthepostionisoverflow!rT);return(1);};for(j=l->length;j>=i;j—)//正??梢圆迦氲那闆r,將順序表1中的元素從最后一位開始到第i位終止,依次向后移動位置,循環(huán)執(zhí)行l(wèi)ength-i+1次l->data[j+l]=l->data[j];l->data[i]=x;1->1ength++;return⑴;//把數(shù)據(jù)X插入到順序表1的第i位
7、上//順序表1表長加一//返回順序表LSeqList*sq_delete(SeqList*1,inti)//自定義函數(shù)sq_dolete,該函數(shù)的功能是刪除,在順序表1中,將第i個位置的元索刪除。函數(shù)的返回值為結(jié)構(gòu)體類型的指針變量{intj;if(i=l->length+l)//如果要刪除的位置小于1或超過的表的長度那就顯示刪除的位置錯謀,并返回順序表1{printf(/zthedeletepostioniserrror!z,);return(l);};for(j=i;j<=l->length;j++)//正??梢詣h除
8、的情況,將順序表1中的元素從第i+1位開始到最后一位終止,依次向前覆蓋,循環(huán)執(zhí)行l(wèi)ength-i次l->data[j]=l->data[j+l];l->lcngth--;//順序衣1衣長減-return仃);//返1川順