数据结构线性表初接触1:线性表的顺序存储结构下基本运算的实现

Posted openmymind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构线性表初接触1:线性表的顺序存储结构下基本运算的实现相关的知识,希望对你有一定的参考价值。

刚刚接触数据结构这学问,通过听课看书后自行练习了用C语言实现线性表的基本运算,其中有许多点值得注意。这里存储各个功能分块的代码,以便自身的理解及以后的复习;

技术分享图片
 1 typedef int ElemType;
 2 #define MaxSize 50
 3 typedef struct {
 4     ElemType data[MaxSize];
 5     int length;
 6 }SqList;
 7 void CreateList(SqList *&L,ElemType a[],int n){
 8     int i=0,k=0;
 9     L=(SqList *)malloc(sizeof(ElemType));
10     while(i<n){
11         L->data[i]=a[i];
12         i++;k++;
13     }
14     L->length=k;
15 }
16 
17 
18 void InitList(SqList *&L){
19     L=(SqList * )malloc(sizeof(SqList)); 
20     L->length=0;
21 } 
22 
23 void DestroyList(SqList * &L){
24     free(L);
25 }
26 
27 bool ListEmpty(SqList *L){
28     return L->length;
29 }
30 
31 int ListLength(SqList *L){
32     return L->length;
33 }
34 
35 void DispList(SqList *L){
36     for(int i=0;i<L->length;i++){
37         printf("%d ",L->data[i]);
38     }
39     printf("
");
40 } 
41 
42 bool GetElem(SqList *L,int i,Elemtype &e){
43     if(i<1||i>L->length)
44         return false;
45     e=L->data[i-1];
46     return true;
47 }
48 
49 
50 int LocateElem(SqList *L,Elemtype e){
51     int i=0;
52     while(i<L->length&&L->data[i]!=e)
53         i++;
54     if(i>=L->length)
55         return 0;
56     else
57         return i+1; 
58     }
59 }
60 
61 bool ListInsert(SqList *&L,int i,Elemtype e){
62     if(i<1||i>L->length)
63         return false;
64         i--;
65         for(int j=L->length;j>i;j--)
66             L->data[j]=L->data[j-1];
67         a[j]=e;
68         L->length++;
69         return true;
70 }
71 
72 
73 bool ListDelete(SqList *&L,int i,Elemtype e){
74     if(i<1||i>L->length)
75         return false;
76     i--;
77     e=L->data[i];
78         for(int j=i;j<L->length-1;j++)
79             L->data[j]=L->data[j+1];
80         L->length--;
81         return true;
82 }
View Code

 

以上是关于数据结构线性表初接触1:线性表的顺序存储结构下基本运算的实现的主要内容,如果未能解决你的问题,请参考以下文章

线性表的简单应用

数据结构(严蔚敏吴伟民)——读书笔记-2 线性表及其基本运算顺序存储结构

程序员“修炼成神”的必经之路——数据结构(第2章 线性表)

用C语言建立一个顺序存储的线性表并实现线性表的插入和删除操作

顺序存储的线性表的基本操作

课本总结:1:线性表