已知順序表L遞增有序,寫演算法, 將X插入到線性表的適當位置上,保證線性表有序。
#include<stdio.h>typedefintElemType;#defineMAXSIZE100#defineOK1#defineERROR0//定義線性表typedefstruct{ElemTypeelem[MAXSIZE];intlength;}SeqList;//創建空表voidInitlist(SeqListL){L->length=0;}//輸入遞增有序順序表intputseqList(SeqListl,intn){inti;for(i=0;i<n;i++)scanf("%d",&(l->elem[i]));returnOK;}//判斷插入位置intPositionList(SeqListL,intX){intj;for(j=0;jlength;j++)if(Xelem[j])//如果找到位置就回傳地址,否則知道回圈結束再回傳最后一個地址returnj;//returnL->length;}//插入元素intInsList(SeqListL,inti,inte){intk;if((i<1)||(i>L->length+2)){printf(“插入位置不合
理”);return(ERROR);}if(L->length>=MAXSIZE-1
{printf(“表已滿無法插入”);return(ERROR);}for(k=L->length;k>=i-1;k–)L->elem[k+1]=L->elem[k];L->elem[i]=e;L->length;return(OK);}//輸出元素intOutputSeqList(SeqList*L){inti;for(i=0;ilength;i++)printf("%d,",L->length++);return(L->elem[i]);}//主程式intmain(){ints,c;SeqListL;Initlist(&L);printf(“請輸入順序表長度:”);scanf("%d",&s);printf(“請輸入遞增順序表:”);putseqList(&L,s);printf(“表長為%d\n”,L.length);printf(“請輸入要插入的元素:”);scanf("%d",&c);InsList(&L,PositionList(&L,c),c);OutputSeqList(&L);printf("\n");}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269349.html
標籤:C++ 語言
上一篇:我寫了個“兩個十六進制字串異或后輸出二進制結果”的C語言程式,但是整形陣列存盤實在太小了
下一篇:這樣為啥不行?
