當前位置:編程學習大全網 - 編程語言 - C語言,線性表,插入,刪除,合並的實現。要源代碼,謝謝了。

C語言,線性表,插入,刪除,合並的實現。要源代碼,謝謝了。

~剛好上學期數據結構老師非要叫寫,還留了個~~

#include<stdio.h>

int c=0;//C是用來計算數組中數的個數的,當下面插入時就c++;刪除時就c--

void print(int a[100])//打印整個數組的函數

{

int b;

for(b=0;b<c;b++)

printf("%d ",a[b]);

printf("\n");

}

void cr(int a[])//插入函數

{

int i,j,m;

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

scanf("%d",&i);

//*************************************************************

//這些是用來判斷,所輸入的位置是否存在,

//如果不存在,則重新再輸入壹次,當然這些可以不要,那在運行的時候

//就需要保證輸入的位置都是對的!

while(i<1||i>c+1)

{

printf("沒有這個位置,請重新輸入要插入的位置:");

scanf("%d",&i);

}

//**************************************************************

printf("請輸入要插入的數:");

scanf("%d",&j);

(c)++;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//用來把要插入位置以後的數,都往後移動壹會,這樣騰出位置

for(m=c-1;m>=i;m--)

{

a[m]=a[m-1];

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

a[i-1]=j;//把要插入的數放入前面騰出的位置

print(a);

}

void del(int a[])//刪除函數

{

int i,m;

printf("請輸入要刪除數的位置:");

scanf("%d",&i);

(c)--;

for(m=i-1;m<c;m++)

a[m]=a[m+1];

print(a);

}

void find(int a[])//查找函數

{

int i,m;

char x;

printf("請輸入要查找的數:");

scanf("%d",&i);

for(m=0;m<c;m++)

{

if(a[m]==i)break;

}

if(m!=c)

{

printf("找到該數下標是%d.\n",m);

}

else

printf("查無此數.\n");

}

void hb(int a[])

{

int b[100]={0};

int d,i;

printf("請輸入要並入的數組數據數量(不能大於%d):",100-c);

scanf("%d",&d);

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

{

printf("請輸入第%d個數:",i+1);

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

}

printf("\n並入\n");

print(a);

printf("\n得到:\n");

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

{

a[c]=b[i];

c++;

}

print(a);

}

void main()

{

int a[100]={0};

int i,j,m,n;

printf("請輸入數據數量:");

scanf("%d",&c);

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

{

printf("請輸入第%d個數:",i+1);

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

}

print(a);

//__________________________________________________________

//次處采用選擇結構,既根據輸入m的值來判斷執行下面哪個語句

printf("插入請輸入1,刪除請輸入2,查找請輸入3,合並新數據4\n任意數結束:");

scanf("%d",&m);

switch (m)

{

case 1 :cr(a);break;

case 2 :del(a);break;

case 3 :find(a);break;

case 4 :hb(a);break;

default : break;

};

//______________________________________________________________

//如果不要兩橫線內的東西,則屏蔽掉後使用下面三句

//cr(a);

//del(a);

//find(a)

}

  • 上一篇:2010年江蘇省專轉本考試答案(理科)
  • 下一篇:當幼師學習的心得體會7篇
  • copyright 2024編程學習大全網