数据结构之 顺序表的实现与操作

来源:互联网 发布:淘宝网怎么支付 编辑:程序博客网 时间:2024/06/06 00:55
#include<stdio.h>#define maxSize 100 typedef struct {int data[maxSize];int length;}Sqlist;void initSqlist(Sqlist &L){L.length=0;}void ListInsert(Sqlist &L,int locate,int x){if(L.length==maxSize||locate<0||locate>L.length+1)return;//把locate和后面的往后移动for(int i=L.length;i>locate;i--)L.data[i+1]=L.data[i];L.data[locate]=x;L.length+=1;}void ListDel(Sqlist &L,int locate,int &e){if(locate<1||locate>L.length+1)return;e=L.data[locate];for(int i=locate;i<L.length;i++)L.data[i]=L.data[i+1];--(L.length);}void merge(Sqlist LA,Sqlist LB,Sqlist &LC){int pa,pb;int i=0,j=0,k=0;initSqlist(LC);while(i<LA.length&&j<LB.length){pa=LA.data[i];pb=LB.data[j];if(pa<=pb){ListInsert(LC,k,pa);i++;}else{ListInsert(LC,k,pb);j++;}k++;}while(i<LA.length){pa=LA.data[i];ListInsert(LC,k,pa);i++;k++;}while(j<LB.length){pb=LB.data[j];ListInsert(LC,k,pb);j++;k++;}}void show(Sqlist L){for(int i=0;i<L.length;i++){printf("%d ",L.data[i]);}}int main(){int temp,len;Sqlist LA,LB,LC;initSqlist(LA);initSqlist(LB);initSqlist(LC);scanf("%d",&len);for(int i=0;i<len;i++){scanf("%d",&temp);ListInsert(LA,i,temp);}scanf("%d",&len);for(int i=0;i<len;i++){scanf("%d",&temp);ListInsert(LB,i,temp);}merge(LA,LB,LC);show(LC);}


 

实现了顺序表的 插入 删除 和合并
原创粉丝点击