生活随笔
收集整理的這篇文章主要介紹了
李春葆《数据结构》第五版
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
李春葆《數(shù)據(jù)結(jié)構(gòu)》第五版
第二章:線性表
實(shí)驗(yàn)一:實(shí)現(xiàn)順序表各種基本運(yùn)算的算法
#include <stdio.h>
#include <malloc.h>
#define Maxsize 50
typedef char Elemtype
;
typedef struct
{Elemtype data
[Maxsize
];
int length
;
}sqlist
;
void createlist(sqlist
*&l
,Elemtype a
[ ],int n
)
{l
=(sqlist
*)malloc(sizeof(sqlist
));
for(int i
=0;i
<n
;i
++)l
->data
[i
]=a
[i
];
l
->length
=n
;
}
void initlist(sqlist
*&l
)
{l
=(sqlist
*)malloc(sizeof(sqlist
));
l
->length
=0;
}
void destroylist
(sqlist
*&l
)
{ free(l
);
}
bool listempty
(sqlist
*l
)
{ return (l
->length
==0);
}
int listlength
(sqlist
*l
)
{ return (l
->length
);
}
void displist(sqlist
*l
)
{for(int i
=0;i
<l
->length
;i
++)
printf("%c",l
->data
[i
]);
printf("\n");
}
bool getelem
(sqlist
*l
,int i
,Elemtype
&e
)
{if(i
<1||i
>l
->length
)
return false;
e
=l
->data
[i
-1];
return true;
}
int locateelem
(sqlist
*l
,Elemtype e
)
{int i
=0;
while(i
<l
->length
&&l
->data
[i
]!=e
)i
++;
if(i
>=l
->length
)return 0;
else return i
+1;
}
bool listinsert
(sqlist
*&l
,int i
,Elemtype e
)
{int j
;
if(i
<1||i
>l
->length
+1) return false;
i
--;
for(j
=l
->length
;j
>i
;j
--)l
->data
[j
]=l
->data
[j
-1];
l
->data
[i
]=e
;
l
->length
++;
return true ;
}
bool listdelete
(sqlist
*&l
,int i
,Elemtype
&e
)
{int j
;
if(i
<1||i
>l
->length
)return false ;
i
--;
e
=l
->data
[i
];
for (j
=i
;j
<l
->length
-1;j
++)l
->data
[j
]=l
->data
[j
+1];
l
->length
--;
return true;
}主函數(shù)程序如下:
int main()
{ sqlist
*l
;
Elemtype e
;
printf("順序表的基本運(yùn)算如下:\n");
printf("(1)初始化順序表l\n");
initlist(l
);
printf("(2)依次插入a,b,c,d,e元素\n");
listinsert(l
,1,'a');
listinsert(l
,2,'b');
listinsert(l
,3,'c');
listinsert(l
,4,'d');
listinsert(l
,5,'e');
printf("(3)輸出順序表l:");displist(l
);
printf("(4)順序表l長度:%d\n",listlength(l
));
printf("(5)順序表l為%s\n",(listempty(l
)?"空":"非空"));
getelem(l
,3,e
);
printf("(6)順序表l的第3個(gè)元素:%c\n",e
);
printf("(7)元素a的位置:%d\n",locateelem(l
,'a'));
printf("(8)在第4個(gè)元素位置上插入f元素\n");
listinsert(l
,4,'f');
printf("(9)輸出順序表l:");displist(l
);
printf("(10)刪除l的第3個(gè)元素:\n");
listdelete(l
,3,e
);
printf("(11)輸出順序表l:");displist(l
);
printf
("(12)釋放順序表l\n");
destroylist(l
);
return 1;
}
實(shí)驗(yàn)結(jié)果:
這里是引用
李春葆《數(shù)據(jù)結(jié)構(gòu)教程 上機(jī)實(shí)驗(yàn)指導(dǎo)》
總結(jié)
以上是生活随笔為你收集整理的李春葆《数据结构》第五版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。