程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用數組實現線性表的各種操作(C語言)只完成一部分功能

用數組實現線性表的各種操作(C語言)只完成一部分功能

編輯:關於C語言

 

未完待續:D

<pre name="code" class="c">

/*

線性結構數組的實現

*/

#include &lt;stdio.h&gt;

#include &lt;malloc.h&gt;  //包含了malloc函數

#include &lt;stdlib.h&gt;  //包含了exit函數

 

//首先定義描述數組信息的結構體類型

struct Arr

{

  int * pBase;//存放數組首地址的指針變量

  int len;//數組長度

  int cnt;//數組中元素的個數

};

 

//定義數組的基本操作的函數聲明

void init_arr(struct Arr * pArr,int length);//數組初始化

bool append_arr(struct Arr * pArr,int val);//追加元素

bool insert_arr(struct Arr * pArr,int index ,int val);//插入元素

bool delete_arr();//刪除元素

int get(); //得到元素

bool is_empty(struct Arr * pArr);//判斷是否為空

bool is_full();//判斷是否已滿

void sort_arr();//排序

void show_arr(struct Arr * pArr);//遍歷數組

void inversion_arr();//數組倒置

 

int main(void)

{

struct Arr arr;

init_arr(&amp;arr,6);//初始化函數測試

//show_arr(&amp;arr);

append_arr(&amp;arr,3);

append_arr(&amp;arr,2);

append_arr(&amp;arr,9);

insert_arr(&amp;arr,2,7);

show_arr(&amp;arr);

return 0;

}

 

//初始化數組的函數實現  pArr是結構體變量arr的指針

void init_arr(struct Arr * pArr,int length)

{

   pArr-&gt;pBase=(int *)malloc(sizeof(int)*length);//malloc()函數頭文件聲明

   if(NULL==pArr-&gt;pBase)

   {

      printf("動態內存分配失敗!\n");

  exit(-1);//要在頭文件聲明

   }

   else

   {

     pArr-&gt;len=length;

pArr-&gt;cnt=0;

   }

 

}

//遍歷數組函數實現

void show_arr(struct Arr * pArr)

{

if(is_empty(pArr))

{

   printf("數組為空\n");

}

else

{

  for(int i=0;i&lt;pArr-&gt;cnt;i++)

  {

    printf("%d",pArr-&gt;pBase[i]);

  }

}

  

}

//判斷數組是否為空

bool is_empty(struct Arr * pArr)

{

   if(pArr-&gt;cnt==0)

  

   return true;

   else

  

   return false;

  

}

//數組追加元素

bool append_arr(struct Arr * pArr,int val)

{

  if(pArr-&gt;cnt &lt; pArr-&gt;len)

  {

    pArr-&gt;pBase[pArr-&gt;cnt]=val;

(pArr-&gt;cnt)++;

return true;

  }

  else

printf("數組已滿\n");

    return false;

}

//插入元素

bool insert_arr(struct Arr * pArr,int index ,int val)

{

   if(pArr-&gt;cnt&lt;pArr-&gt;len&amp;&amp;index&lt;=pArr-&gt;cnt)

   {

   for(int i=pArr-&gt;cnt-1;i&gt;=index-1;i--)

   {

     pArr-&gt;pBase[i+1]=pArr-&gt;pBase[i];

 

 

   }

   pArr-&gt;pBase[index-1]=val;

   (pArr-&gt;cnt)++;

   return true;

   }

   else

   {

   printf("插入失敗\n");

   return false;

   }

 

 

}</pre>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved