程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言線性表

c語言線性表

編輯:關於C語言

c語言的線性表,還沒有完善

 1 #include<stdio.h> 
 2 #define MAXSIZE 100    //初始空間分配量
 3 #define OK 1
 4 #define ERROR 0
 5 #define TRUE 1
 6 #define FALSE 1
 7 typedef int ElemType; //類型為int 
 8 typedef int Status;//函數的返回類型,此處為int 
 9 typedef struct
10 {
11     ElemType data[MAXSIZE];
12     int length;    
13 }SqList;
14 /*用e返回獲取的函數值,當i超出線性表范圍,則返回ERROR*/
15 Status GetElem(SqList L,int i,ElemType *e)
16 {
17     if(L.length==0||i<1||i>L.length)
18         return ERROR;
19     *e=L.data[i-1];
20     return OK;
21 }
22 Status LisrInsert(SqList *L,int i,ElemType e)//插入元素操作 
23 {
24     int k;
25     if(L->length==MAXSIZE)//線性表已滿 
26         return ERROR;
27     if(i<1||i>L->length)//當i不在范圍內 
28     {
29         return ERROR;
30     }
31     if(i<=L->length)//插入的數據不在表尾 
32     {
33             for(k=L->length-1;k>=i-1;k--)//將插入位置後的數據元素向後移一位 
34                 L->data[k+1]=L->data[k];        
35     }
36     L->data[i-1]=e;//將新元素插入 
37     L->length++;
38     return OK; 
39 }
40 /*結果,刪除L的第i個元素,並用e返回值,L的長度減一*/
41 Status ListDelete(SqList *L,int i,ElemType *e)
42 {
43     int k;
44     if(L->length==0)//線性表為空 
45         return ERROR;
46     if(i<1||i>L->length)//刪除位置不正確 
47         return ERROR;
48     *e=L->data[i-1];
49     if(i<L->length)//如果刪除的不是最後的位置 
50     {
51         for(k=i;k<L->length;k++)//將刪除位置後繼元素前移 
52             L->data[k-1]=L->data[k];
53                 
54     } 
55     L->length--;
56     return OK;
57         
58 } 
59 /* 初始化順序線性表 */
60 void InitList(SqList *L)
61 {
62     L->length=0;
63 
64 }

 

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