天天看點

順序表C語言代碼實作一、代碼  二、執行效果

一、代碼 

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
        ElemType elem[MAXSIZE];
        int length;
}SqList;
void outlin(SqList s);
void create(SqList *v);
void insert(SqList *v,int i,int x);
void deleter(SqList *v,int i);
int main() 
{
        SqList pz;
        int i,y,cord;
        do
        {
                printf("\n                主菜單\n");
                printf("        1        建立線性表\n");
                printf("        2        插入一個元素\n");
                printf("        3        删除一個元素\n");
                printf("        4        結束程式\n");
                printf("-------------------------\n");
                printf("請輸入您的選擇(1,2,3,4) :");
                scanf("%d",&cord);
                switch(cord)
                {
                case 1:
                        {
                                create(&pz);
                                outlin(pz);
                        }break;
                case 2:
                        {
                                printf("\n 請輸入插入的位置 i:");
                                scanf("%d",&i);
                                printf("\n 插入的資料 x:"); 
                                scanf("%d",&y);
                                insert(&pz,i,y);
                                outlin(pz);
                        }break;
                case 3:
                        {
                                printf("\n 請輸入删除的位置 i:");
                                scanf("%d",&i);
                                deleter(&pz,i);
                                outlin(pz);
                        }break;
                case 4:exit(0);
                }
        }while(cord<=4);
        return 0;
}
void outlin(SqList s)
{
        system("cls");
        int i;
        printf("表資訊:\n"); 
        printf("位置  元素值   實體位址"); 
        for(i=1;i<=s.length;i++)
                printf("\n%2d %6d %13d",i,s.elem[i-1],&s.elem[i-1]);
        printf("\n-------------------------");
}

void insert(SqList *v,int i,ElemType x)
{
        int j;
        if((i<0)||(i>v->length+1))
        {
        //	system("cls");
        	printf("\n Error!您輸入的位置有誤,請重新輸入\n");
        	system("pause");
		}
        else
        {
                for(j=v->length;j>=i;j--)
                        v->elem[j]=v->elem[j-1];
                v->elem[j]=x;
                v->length++;
                printf("\n資料插入成功!\n"); system("pause");
        }
}
void deleter(SqList *v,int i)
{
        int j;
        if((i<0)||(i>v->length)){
                printf("\n No exit!\n");
                system("pause");
        }
        else
        {
                for(j=i;j<v->length;j++)
                        v->elem[j-1]=v->elem[j];
                v->length--;
                printf("\n成功删除%d位置上的資料\n",i);
                system("pause");
        }
}
void create(SqList *v)
{
        int i;
        printf("\n 請輸入表長n=");
        scanf("%d",&(v->length));
        printf("\n 請輸入表資料:\n");
        for(i=0;i<v->length;i++)
        {
                printf("\n data%d=",i+1);
                scanf("%d",&(v->elem[i]));
        }
    printf("\n表建立成功\n");system("pause"); 
}
           

 二、執行效果

順序表C語言代碼實作一、代碼  二、執行效果
順序表C語言代碼實作一、代碼  二、執行效果
順序表C語言代碼實作一、代碼  二、執行效果
順序表C語言代碼實作一、代碼  二、執行效果

歡迎修改指正~ 

繼續閱讀