數據結構中順序表的實現


題目:創建一個靜態的順序表存放整數,大小為10,完成以下的操作。

(1)輸入6個整數,打印出順序表的內容,並顯示表中的剩余空間個數。

(2)在順序表中的第3個位置插入0,打印出順序表中的內容,並顯示表中剩余的空間個數。

(3)再試圖插入表中第11個位置整數0,程序提示超出范圍。

(4)刪除表中第6個元素,打印出順序表中的內容,並表示表中剩余的空間個數。

#include<stdio.h>

#define MaxSize 10

//靜態順序表的各種操作

//向順序表中插入元素

//參數Sqlist:表 首地址

//參數*len:表的長度 //參數i:插入元素的位置

//參數x:待插入的元素值

void insertElem(int Sqlist[],int *len,int i,int x)

{

      int t;

      if(*len==MaxSize || i*len+1)

      {

           printf("This insert is illegal\n");

           return;

      } //非法插入

      for(t=*len-1;t>=i-1;t--)

      Sqlist[t+1]=Sqlist[t];

      Sqlist[i-1]=x; //插入元素

      *len=*len+1; //表長增加1

}

//向順序表中刪除元素

//參數Sqlist:表首地址

//參數*len:表的長度

//插入元素的位置

void DelElem(int Sqlist[],int *len,int i)

{

       int j; if(i*len)

       {

             printf("This insert is illegal");

             return; //非法插入

       }

       for(j=i;j<=*len-1;j++)

       Sqlist[j-1]=Sqlist[j]; //將第i個元素之后的元素前移

       *len=*len-1; //表長減1

} //測試函數

void main()

{

        int Sqlist[MaxSize]; //定義一個靜態順序表

        int len; int i;

        for(i=0;i<6;i++)

        scanf("%d",&Sqlist[i]); //從鍵盤輸入6個整數

        len=6; for(i=0;i<len;i++)

        printf("%d ",Sqlist[i]); //輸出6個整數

        printf("\nThe spare length is %d\n",MaxSize-len); //顯示表中的剩余空間

        insertElem(Sqlist,&len,3,0); //在表中第3個位置插入0

        for(i=0;i<len;i++)

        printf("%d ",Sqlist[i]); //輸出順序表中的所有元素

        printf("\nThe space length is %d\n",MaxSize-len); //顯示表中的剩余空間

        insertElem(Sqlist,&len,11,0); //在表中第11位置插入整數0

        DelElem(Sqlist,&len,6); //刪除順序表中的第6個元素

        for(i=0;i<len;i++)

        printf("%d ",Sqlist[i]); //輸出順序表中的所有元素

        printf("\nThe space length is %d\n",MaxSize-len); //顯示表中的剩余空間

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM