最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

數(shù)據(jù)結(jié)構(gòu)(1)——順序表的實(shí)現(xiàn)

2018-07-23 20:56 作者:啷個(gè)里格朗郎郎  | 我要投稿

該程序?qū)崿F(xiàn)了以下的功能:

  1. 建立順序表,輸入輸入表的大小,順序表的大小不超過100

  2. 遍歷順序表,將順序表中的數(shù)據(jù)展示出來

  3.  插入數(shù)據(jù),可以根據(jù)位置插入

  4. 刪除數(shù)據(jù),根據(jù)位置刪除, 或刪除指定數(shù)據(jù)

  5. 查找數(shù)據(jù),根據(jù)位置查找,或查找指定的數(shù)據(jù)

  6. 退出

具體代碼如下

//順序表 

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>


#define MaxSize 100

typedef int DataType;


typedef struct{

DataType list[MaxSize];//定義數(shù)組 

int size;//定義類型的大小 

}S;//將該數(shù)據(jù)結(jié)構(gòu)命名為S


//初始化順序列表 

void ListInit(S *L){//類似于 int *a,為數(shù)據(jù)結(jié)構(gòu)生成一個(gè)指針 

L->size=0;//初始化,順序列表的大小為0 


//創(chuàng)建一個(gè)順序表,里面賦值

void CreatList(S *L,DataType a[],int size){

//需要將創(chuàng)建的表傳進(jìn),有值的數(shù)組,表的大小

    int i;

    for(i=0;i<size;i++){

    L->list[i]=a[i];//將數(shù)組a中的數(shù)據(jù)賦值到表中 

    L->size++;//計(jì)算表的大小 

}

//計(jì)算表的長度

int Length(S *L){

return L->size;


//查找某數(shù),是否存在于該表中,并輸出位置 

int Find(S *L,DataType a){

int i;

for(i=0;i<L->size;i++){

if(L->list[i]==a){

printf("it's address:%d",i);

return i;

}

}

printf("can't find it'");

return 0;


//查找某位置上的數(shù)

int Location(S *L,int a){

printf("%d\n",L->list[a]);

return 0;

//插入,在尾部插入,添加

void Add(S *L,DataType sum){

L->size++;

L->list[L->size-1]=sum;


//插入,在某位置上插入

int InsertLocation(S *L,int a,DataType sum){

int i;

if(a>L->size||a<0){

printf("The address is wrong\n");

return 0;

}else if(L->size>=MaxSize){

printf("The table is full\n");

return 0;

}else if(a==L->size){

Add(L,sum);

return 0;

}else{

for(i=L->size;i>=a;i--){

L->list[i+1]=L->list[i]; 

}

L->list[a]=sum;

L->size++;

return 0;

}



//刪除,刪除特定位置上的數(shù)

int Delete(S *L,int a){

int i;

if(a<0||a>L->size){

return 0;//位置信息錯誤 

}

for(i=a;i<L->size;i++){

L->list[i]=L->list[i+1];

}

L->size--; 

return 1;//刪除成功 


//刪除特定的數(shù)值

int DeleteSum(S *L,DataType sum){

int i,flag;

flag=Find(L,sum);//查找數(shù)的位置 

if(flag){

Delete(L,flag);//刪除特定位置上的數(shù) 

}else{

return 0;//該數(shù)值不存在 

}

//刪除全部

void DeleteAll(S *L){

ListInit(L);

//遍歷

void FindAll(S *L){

int i;

for(i=0;i<L->size;i++){

printf("%d",L->list[i]);

}

printf("\n");



//創(chuàng)建順序表界面

S InterfaceCreate(S *L){

printf("請輸入大?。?quot;);

int size;

scanf("%d",&size);

printf("請輸入具體數(shù):");

int i;

int a[size];

for(i=0;i<size;i++){

scanf("%d",&a[i]);

}

ListInit(L);

CreatList(L,a,size);

FindAll(L);

return *L;


//插入的界面

S InterfaceInsert(S *L){

int a,sum;

printf("請輸入插入的位置");

scanf("%d",&a); 

printf("請輸入插入的數(shù)");

scanf("%d",&sum);

InsertLocation(L,a,sum);

return *L;

//刪除的界面

 S InterfaceDelete(S *L){

 

  printf("******************************\n");

    printf("***1----------刪除特定位置****\n");

    printf("***2----------刪除特定數(shù)值****\n");

    printf("***3----------全部刪除********\n");

    printf("***4----------退出************\n");

    printf("******************************\n");

    while (1){

    int choice;

        printf("請選擇:");

        scanf("%d",&choice); 

        switch(choice){

        case 1:{

        printf("請輸入位置:");

        int a;

scanf("%d",&a);

Delete(L,a); 

break;

}

        case 2:{

        printf("請輸入數(shù)值");

        DataType sum;

        scanf("%d",&sum);

        DeleteSum(L,sum);

break;

}

        case 3:DeleteAll(L);

            case 4: return *L; 

   }

 }

 //查找的界面 

 S InterfaceFind(S *L){

  printf("******************************\n");

    printf("***1----------查找特定位置****\n");

    printf("***2----------查找特定數(shù)值****\n");

    printf("***3----------退出************\n");

    printf("******************************\n");

     while (1){

    int choice;

        printf("請選擇:");

        scanf("%d",&choice); 

        switch(choice){

        case 1:{

        printf("請輸入位置:");

        int a;

scanf("%d",&a);

Location(L,a); 

break;

}

        case 2:{

        printf("請輸入數(shù)值");

        DataType sum;

        scanf("%d",&sum);

        Find(L,sum);

break;

}

            case 3: return *L; 

   }

 }

 //主界面

void Interface(){

printf("******************************\n");

    printf("***1----------創(chuàng)建順序表******\n");

    printf("***2----------遍歷************\n");

    printf("***3----------插入************\n");

    printf("***4----------刪除************\n");

    printf("***5----------查找************\n");

    printf("***6----------退出************\n");

    printf("******************************\n");

    

int main(){

    S mylist;

    

    while(1){

    Interface();

    int choice;

        printf("請選擇:");

        scanf("%d",&choice); 

        switch(choice){

        case 1:InterfaceCreate(&mylist);break;

            case 2:FindAll(&mylist);break;

            case 3:InterfaceInsert(&mylist);break;

            case 4:InterfaceDelete(&mylist);break;

            case 5:InterfaceFind(&mylist);break;

            case 6:exit(1); 

   }

}


system("pause");

return 0;


數(shù)據(jù)結(jié)構(gòu)(1)——順序表的實(shí)現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
神木县| 西和县| 红桥区| 读书| 阜阳市| 阿合奇县| 浙江省| 河间市| 芷江| 扎囊县| 开江县| 平江县| 丁青县| 咸丰县| 文昌市| 南川市| 南京市| 库尔勒市| 灵宝市| 万载县| 昌吉市| 韩城市| 兴隆县| 炎陵县| 始兴县| 商南县| 绥中县| 卢氏县| 剑阁县| 黔西县| 临颍县| 康定县| 芒康县| 陈巴尔虎旗| 乳山市| 佛坪县| 北流市| 桂东县| 阿拉善盟| 新化县| 定远县|