线性表之顺序表的十大操作(从初始化到释放)C语言版 您所在的位置:网站首页 初始化顺序表c语言 线性表之顺序表的十大操作(从初始化到释放)C语言版

线性表之顺序表的十大操作(从初始化到释放)C语言版

#线性表之顺序表的十大操作(从初始化到释放)C语言版| 来源: 网络整理| 查看: 265

语⾔版

#

include

 

#

include

 

#

define

 MAXSIZE 50  

//

线性表的存储区的总长度

typedef

 

struct

{

    

int

 

*

data

;

   

//

指向数据区地址

,

假设存储

int

    

int

 size

;

  

//

当前顺序表的长度

}

SqList

;

void

 

Initialise

(

SqList 

*

List

)

  

//

初始化顺序表

{

    List

->

data

=

(

int

 

*

)

malloc

(

sizeof

(

int

)

*

MAXSIZE

);

 

//

为顺序表申请空间

    List

->

size

=

0

;

    

printf

(

"---------

申请空间结束

"

);

}

void

 

DelList

(

SqList 

*

List

)

  

//

释放顺序表

{

    

free

(

List

->

data

);

  

//free

释放了

data

指针指向的内存块,告诉系统该块内存闲置,但

date

仍然指向该内存块⾸地址,故需赋值为

NULL

    List

->

data

=

NULL

;

    List

->

size

=

0

;

    

printf

(

"\n

删除成功

"

);

}

int

 

JudEmpty

(

SqList 

*

List

)

  

//

判断顺序表书否为空

{

    

if

(

List

->

size

==

0

)

        

return

 

1

;

    

else

        

return

 

-

1

;

}

int

 

Length

(

SqList 

*

List

)

  

//

求顺序表表长

{

    

int

 size

=

0

;

    

for

(

int

 i

=

0

;

List

->

data

[

i

]

!=

NULL

;

i

++

)

        size

++

;

    

return

 size

;

}

void

 

Output

(

SqList 

*

List

)

 

//

输出顺序表

{

    

for

(

int

 i

=

0

;

i

size

;

i

++

)

    

{

        

printf

(

"\n

%d

个数据是:

 %d"

,

i

,

List

->

data

[

i

]);

    

}

    

printf

(

"\n---------

输出结束。

"

);

}

void

 

Insert

(

SqList 

*

List

,

int

 l

,

int

 data

)

 

//

插⼊

{

    

if

(

l

List

->

size

+

1

||

l

>=

MAXSIZE

)

  

//

判断插⼊位置是否合法,需要在第⼀个元素到最后⼀个元素的后⼀位之间

,

且不能超过最⼤长度

    

{

        

printf

(

"illgal location"

);

        

return

 

-

1

;

    

}

    

for

(

int

 i

=

List

->

size

;

i

>

l

-

1

;

i

--

)

    

{

            List

->

data

[

i

]

=

List

->

data

[

i

-

1

];

  

//

所有元素后移⼀位

    

}

    List

->

data

[

l

-

1

]

=

data

;

  

//

插⼊

data

l

的位置(下标是

l-1

    List

->

size

++

;

    

printf

(

"\n

插⼊位置

: %d\n---------

插⼊结束

"

,

l

);

}

int

 

Loc_Search

(

SqList 

*

List

,

int

 l

)

  

//

按位查找

{

    

if

(

l

List

->

size

)

        

return

 

-

1

;

    

return

 List

->

data

[

l

-

1

];



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有