順序表的創建—數據結構算法


代碼功能截圖:

部分源碼:

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20
typedef int ElemType;
typedef struct
{ ElemType a[MAXSIZE];
int length;
}SqList;
SqList a,b,c;
void creat_list(SqList *l);
void out_list(SqList l);
void insert_sq(SqList *l,int i,ElemType e);
ElemType delete_sq(SqList *l,int i);
int locat_sq(SqList l,ElemType e);
int main()
{int i,k,loc;ElemType e,x;char ch;
do{
printf("\n");
printf("\n 1.建立順序表");
printf("\n 2.插入元素");
printf("\n 3.刪除元素");
printf("\n 4.查找元素");
printf("\n 0.結束程序運行");
printf("\n============================");
printf("\n 請輸入您的選擇(1,2,3,4,0) \n");

scanf("%d",&k);
switch(k)
{case 1:{creat_list(&a);
out_list(a);
} break;
case 2:{printf("\n 請輸入插入位置(大於等於1,小於等於%d):",a.length+1);
scanf("%d",&i);
printf("\n 請輸入要插入元素值:");
scanf("%d",&e);
insert_sq(&a,i,e);
out_list(a);
} break;
case 3:{printf("\n 請輸入要刪除的元素的位置(大於等於1,小於等於%d):",a.length);
scanf("%d",&e);
x=delete_sq(&a,e);
out_list(a);
if(x!=-1) printf("\n刪除的元素為:%d\n",x);
else printf("要刪除的元素不存在!");
} break;
case 4:{printf("\n 請輸入要查找元素值:"); 
scanf("%d",&e);
loc=locat_sq(a,e);
if(loc==-1) printf("\n未找到指定元素!");
else printf("已找到,元素位置是%d",loc);
}break;
}/*switch*/
}while(k!=0);
printf("\n 按Enter鍵,返回...");
// ch=getchar();
}/* main*/
/*建立順序表*/
void creat_list(SqList *l)
{ int i;
printf("請輸入順序表的長度:");
scanf("%d",&l->length);
for(i=0;i<l->length;i++)
{ printf("數據 %d=",i);
scanf("%d",&(l->a[i]));
}
}/*creat_list*/

/*輸出順序表*/
void out_list(SqList l)
{int i;
for(i=0;i<=l.length-1;i++)
printf("%10d",l.a[i]);
}/*out_list*/

/*在順序表的第i個位置插入元素e*/
void insert_sq(SqList *l,int i,ElemType e)
{ int j;
if(l->length==MAXSIZE) printf("順序表已滿!\n");
else if (i<1||i>l->length +1) printf("輸入位置錯誤\n");
else{
for(j=l->length-1;j>=i-1;j--) l->a[j+1]=l->a[j];
l->a[i-1]=e;
l->length++;
}
}/*insert_sq*/

  

注意這里僅為部分代碼。獲取源碼請關注“值南針”微信公眾號:可用電腦微信關注或手機關注。在電腦方便。直接下載源碼。

 

 

 

點擊下載直接就可以用的。

 


免責聲明!

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



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