免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

c語言順序表主函數 c語言創建一個順序表主函數

C語言數據結構順序表選擇排序怎么在主函數中調用,謝謝!

SeqList L;//L只是個默認構造,在后面執行基本是統一的0值;執行前應該設置實體數據

創新互聯是一家專業提供南丹企業網站建設,專注與成都網站設計、網站制作、html5、小程序制作等業務。10年已為南丹眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

L=Selection(L.length);//改為L=Selection(L);原函數調用與函數定義不符,有語法錯誤;L.length是個int 類型,函數定義的參數類型是SeqList;

SeqList Selection(SeqList L) 內部邏輯不夠簡捷,多多練習;

if (L.data[j]L.data [i]){}//可直接交換,k標志沒什么作用。

求用C語言寫這個順序表的主函數

完整代碼:

#include stdio.h

#include stdlib.h

#include windows.h

#define MAXSIZE 100

typedef int datatype;

typedef struct{

datatype a[MAXSIZE];

int size;

}sequence_list;

void init(sequence_list *slt)

{

slt-size=0;

}

void append(sequence_list *slt,datatype x)

{

if(slt-size==MAXSIZE)

{

? printf("順序表是滿的");

exit(1);

}

slt-a[slt-size]=x;

slt-size=slt-size+1;

}

void display (sequence_list slt)

{

int i;

if(!slt.size)

printf("順序表是空的");

else

for(i=0;islt.size;i++)

printf("%5d",slt.a[i]);

printf("\n");

}

int empty (sequence_list *slt)

{

memset(slt,0,sizeof(sequence_list));

return(slt-size==0?1:0);

}

int find (sequence_list slt,datatype x)

{

int i=0;

while(islt.size slt.a[i]!=x)

i++;

return(islt.size ? i:-1);

}

datatype get(sequence_list slt,int i)

{

if(i0||i=slt.size)

{

printf("\n指定位置的節點不存在");

exit(1);

}

else

? return slt.a[i];

}

void insert(sequence_list *slt,datatype x,int position)

{

int i;

if(slt-size==MAXSIZE)

{

printf("\n順序表是滿的,無法插入");

exit(1);

}

if(position0||positionslt-size)

{

printf("\n指定的插入位置不存在");

exit(1);

}

for(i=slt-size;iposition;i--)

slt-a[i]=slt-a[i-1];

slt-a[position]=x;

slt-size++;

}

void dele(sequence_list *slt,int position)

{

int i;

if(slt-size==0)

{

printf("\n順序表是空的,無法刪除");

exit(1);

}

if(position0||position=slt-size)

{

printf("\n指定的刪除位置不存在");

exit(1);

}

for(i=position;islt-size-1;i++)

? slt-a[i]=slt-a[i+1];

? slt-size--;

}

int main()

{

sequence_list slt;

bool exit_flag=false;

int fun_num=1;

datatype data=0;

int i=0;

printf("1.初始化 ?2.增加節點 ?3.顯示 ?4.清空 ?5.查找\n6.獲取節點 7.插入節點 ?8.刪除節點 ?9.退出 ?0.清屏\n");

while (!exit_flag)

{

printf("請選擇功能:\n");

scanf("%d",fun_num);

switch (fun_num)

{

case 1:

init(slt);

break;

case 2:

printf("請輸入數據:\n");

scanf("%d",data);

append(slt,data);

break;

case 3:

display (slt);

break;

case 4:

empty (slt);

break;

case 5:

printf("請輸入查找的數據:\n");

scanf("%d",data);

printf("查找到的數據位置為:%d",find (slt,data));

printf("\n");

break;

case 6:

printf("請輸入數據位置:\n");

scanf("%d",i);

printf("該位置的數據為:%d",get(slt,i));

printf("\n");

break;

case 7:

printf("請輸入插入節點位置:\n");

scanf("%d",i);

printf("請輸入插入節點數據:\n");

scanf("%d",data);

insert(slt,data,i);

break;

case 8:

printf("請輸入刪除節點位置:\n");

scanf("%d",i);

dele(slt,i);

break;

case 9:

exit_flag=true;

break;

case 0:

system("CLS");

printf("1.初始化 ?2.增加節點 ?3.顯示 ?4.清空 ?5.查找\n6.獲取節點 7.插入節點 ?8.刪除節點 ?9.退出 ?0.清屏\n");

break;

default:

break;

}

}

return 0;

}

效果如下圖,調試通過,所有功能好使

C語言順序表的基本操作

#include?stdio.h

#include?stdlib.h

typedef?int?DataType;?//?定義數據數據類型

typedef?struct?{

DataType?*data;???//?data指向數據區的首個數據

int?length;???????//?數據長度

}SqList;

void?Sort(SqList?*L)?{

int?i,j,k;

DataType?tmp;

for(i?=?0;?i??L-length?-?1;?++i)?{

k?=?i;

for(j?=?i?+?1;?j??L-length;?++j)

if(L-data[k]??L-data[j])

k?=?j;

if(k?!=?i)?{

tmp?=?L-data[k];

L-data[k]?=?L-data[i];

L-data[i]?=?tmp;

}

}

}

SqList?*CreateList(DataType?a[],int?n)?{

int?i;

SqList?*L;

L?=?(SqList?*)malloc(sizeof(SqList));

L-data?=?(DataType?*)malloc(n?*?sizeof(DataType));

L-length?=?n;

for(i?=?0;?i??n;?++i)?L-data[i]?=?a[i];

Sort(L);

return?L;

}

int?InsertList(SqList?*L,DataType?x)?{

int?i,j;

for?(i?=?0;i??L-length;i++)?{

if(x?=?L-data[i])?{

for(j?=?L-length;j?=?i;j--)

L-data[j?+?1]?=?L-data[j];?//?結點后移

L-data[i]?=?x;

L-length++;

return?1;

}

}

L-data[L-length++]?=?x;

return?1;

}

int?RemoveListElem(SqList?*L,DataType?d)?{

int?i,j;

for(i?=?0;?i??L-length;?++i)?{

if(L-data[i]?==?d)?{

for(j?=?i;?j??L-length?-?1;?++j)

L-data[j]?=?L-data[j?+?1];

L-length--;

return?1;

}

}

return?0;

}

SqList?*AndList(SqList?*A,?SqList?*B)?{???/*?A∩B?*/

int?i,j,k?=?0;

int?len?=?(A-length??B-length)???B-length?:?A-length;

SqList?*C?=?(SqList?*)malloc(sizeof(SqList));

C-length?=?len;

C-data?=?(DataType?*)malloc(len?*?sizeof(DataType));

for(i?=?0;?i??A-length;?++i)?{

for(j?=?0;?j??B-length;?++j)?{

if(A-data[i]?==?B-data[j])?{

C-data[k++]?=?A-data[i];

break;

}

}

}

C-length?=?k;

return?C;

}

SqList?*OrList(SqList?*A,?SqList?*B)?{???/*?A∪B?*/

int?i,j,flag;

DataType?e;

SqList?*C?=?(SqList?*)malloc(sizeof(SqList));

C-length?=?A-length?+?B-length;

C-data?=?(DataType?*)malloc(C-length?*?sizeof(DataType));

for(i?=?0;?i??A-length;?++i)?C-data[i]?=?A-data[i];

for(i?=?0;?i??B-length;?++i)?{

e?=?B-data[i];

flag?=?1;

for(j?=?0;?j??C-length;?++j)?{

if(e?==?C-data[j])?{

flag?=?0;

break;

}

}

if(flag)?InsertList(C,e);

}

return?C;

}

void?PrintList(SqList?*L)?{

int?i;

for(i?=?0;?i??L-length;?++i)

printf("%d?",L-data[i]);

printf("\n");

}

void?FreeList(SqList?*L)?{

free(L-data);

free(L);

}

void?main()?{

DataType?x;

DataType?arra[]?=?{36,24,31,5,90,65,70,39,37};

DataType?arrb[]?=?{9,8,43,51,37,89,33,46,29,80,56};

int?alen?=?sizeof(arra)/sizeof(arra[0]);

int?blen?=?sizeof(arrb)/sizeof(arrb[0]);

SqList?*A?=?CreateList(arra,alen);

printf("A線性表為:?");

PrintList(A);

SqList?*B?=?CreateList(arrb,blen);

printf("B線性表為:?");

PrintList(B);

SqList?*C?=?AndList(A,B);

SqList?*D?=?OrList(A,B);

printf("?C?=?A∩B:?");

PrintList(C);

printf("?D?=?A∪B:?");

PrintList(D);

printf("在D表中插入數據?:?");

scanf("%d",x);

InsertList(D,x);

printf("D表插入x后?:");

PrintList(D);

printf("刪除D表中數據?:?");

scanf("%d",x);

RemoveListElem(D,x);

printf("刪除x后的D表為?:");

PrintList(D);

FreeList(A);

FreeList(B);

FreeList(C);

FreeList(D);

}

當前名稱:c語言順序表主函數 c語言創建一個順序表主函數
分享地址:http://m.newbst.com/article24/dogphce.html

成都網站建設公司_創新互聯,為您提供做網站、商城網站、網站設計手機網站建設App開發、網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設