ç´æ¥ä¸æºç å§ã
/*线æ§è¡¨åè½çå®ç°*/
#include<stdio.h>
//å®ä¹å¸¸é åå¨ç©ºé´çåå§ååé
#define MAXSIZE 20
#define TRUE 1
#define ERROR -1
#define FALSE 0
#define OK 1
//ç¨typedefå®ä¹ç±»å
typedef int Status;
typedef int ElemType;
//å®ä¹ä¸ä¸ªç»æä½ç±»å
typedef struct{
ElemType data[MAXSIZE];
int length;
} SqList;
//åå§åå½æ°
Status initList(SqList *L){
L->length = 0;
return OK;
}
//è¿å线æ§è¡¨çé¿åº¦
Status getListLength(SqList L){
return L.length;
}
//线æ§è¡¨ä¸ºç©ºè¿åtrue,å¦åè¿åfalse
Status listEmpty(SqList L){
if(L.length == 0){
return TRUE;
}
return FALSE;
}
//线æ§è¡¨æ¸
空,é¿åº¦ä¸º0
Status clearList(SqList *L){
L->length = 0;
return OK;
}
//è·åæå®çå
ç´ çå¼,è¿åä¸æ 为i - 1çå
ç´ ,èµå¼ç»e
Status getElem(SqList L, int i, ElemType *e){
//å¤æå
ç´ ä½ç½®æ¯å¦åæ³[i]
if(i > L.length || i < 1){
printf("æ¥æ¾çä½ç½®ä¸æ£ç¡® \n");
return ERROR;
}
//å¤æ线æ§è¡¨æ¯å¦ä¸ºç©º
if(listEmpty(L)){
return ERROR;
}
*e = L.data[i - 1];
return OK;
}
//å¨çº¿æ§è¡¨ä¸æ¥æ¾æå®çeç¸ççå
ç´ ,å¦ææ¥æ¾æå,è¿å该å
ç´ çä¸æ ,å¦åè¿åERROR
Status locateElem(SqList L, ElemType e){
int i;
for(i = 0; i < L.length - 1; i++){
if(L.data[i] == e){
return i;
}
}
printf("没ææ¥æ¾å°å
ç´ %d æå®çä¸æ \n",e);
return ERROR;
}
//èªå¨å建 MAXSIZE 个å
ç´ ,并èµå¼ä¸º0
Status createList(SqList *L){
int i;
for(i = 0; i < 10; i++){
L->data[i] = 0;
}
L->length = 10;
return OK;
}
//å¨çº¿æ§è¡¨ä¸ç¬¬i个ä½ç½®åæå
¥æ°å
ç´ e
Status listInsert(SqList *L, int i, ElemType e){
//å¤æé¿åº¦æ¯å¦å¯ä»¥å
许æå
¥æ°çæ°æ®
if(L->length >= MAXSIZE){
printf("空é´å·²æ»¡,ä¸è½åæå
¥æ°æ®\n");
return FALSE;
}
//å¤ææå
¥ä½ç½®çåæ³æ§
if(i < 1 || i > L->length) {
printf("æå
¥ä½ç½®ä¸æ£ç¡®\n");
return FALSE;
}
int j;
for(j = L->length - 1; j >= i; j--){
L->data[j] = L->data[j - 1];
}
L->data[i - 1] = e;
L->length++;
return TRUE;
}
//å é¤çº¿æ§è¡¨ä¸ç¬¬i个å
ç´ ,æåå表é¿å1,ç¨eè¿åå
¶å¼
Status deleteList(SqList *L, int i, ElemType *e){
//å¤æ线æ§è¡¨æ¯å¦ä¸ºç©º
if(listEmpty(*L)){
return ERROR;
}
//å¤æå é¤çä½ç½®æ¯å¦åæ³
if(i < 1 || i > L->length) {
printf("å é¤ä½ç½®ä¸åæ³\n");
return ERROR;
}
*e = L->data[i - 1];
for(i; i < L->length; i++){
L->data[i - 1] = L->data[i];
}
L->length--;
return TRUE;
}
//éå线æ§è¡¨
Status listTraverse(SqList L){
int i;
for(i = 0; i < L.length; i++){
printf("%d ",L.data[i]);
}
printf("\n");
return OK;
}
//主ç¨åº
int main(void){
SqList L;
ElemType e;
initList(&L);
int option = 1;
int input_number;
int res;
ElemType input_value;
printf("\n1.éå线æ§è¡¨ \n2.å建线æ§è¡¨ \n3.æ¸
空线æ§è¡¨ \n4.线æ§è¡¨æå
¥ \n5.æ¥æ¾è¡¨ä¸å
ç´ \n6.å¤æå
ç´ æ¯å¦å¨è¡¨ä¸ \n7.å é¤æ个å
ç´ \n8.线æ§è¡¨é¿åº¦\n9.线æ§è¡¨æ¯å¦ä¸ºç©º\n0.éåº \n请éæ©ä½ çæä½ï¼\n");
while(option){
scanf("%d",&option);
switch(option){
case 0:
return OK;
break;
case 1:
listTraverse(L);
break;
case 2:
createList(&L);
listTraverse(L);
break;
case 3:
clearList(&L);
listTraverse(L);
break;
case 4:
printf("请è¾å
¥æå
¥çä½ç½®:");
scanf("%d",&input_number);
printf("\n");
printf("请è¾å
¥æå
¥çå¼:");
scanf("%d",&input_value);
printf("\n");
listInsert(&L, input_number, input_value);
listTraverse(L);
break;
case 5:
printf("请è¾å
¥è¦æ¥æ¾çä½ç½®:");
scanf("%d",&input_number);
printf("\n");
getElem(L, input_number, &input_value);
printf("第%d个å
ç´ çå¼ä¸º:%d\n",input_number,input_value);
break;
case 6:
printf("请è¾å
¥è¦æ¥æ¾çå
ç´ :");
scanf("%d",&input_value);
printf("\n");
res = locateElem(L, input_value);
if(res != ERROR){
printf("å¼ä¸º%då¨è¡¨ä¸ç第%d个ä½ç½®\n",input_value,input_number);
}
break;
case 7:
printf("è¦å é¤ç¬¬å 个å
ç´ ï¼");
scanf("%d",&input_number);
printf("\n");
deleteList(&L, input_number, &input_value);
listTraverse(L);
break;
case 8:
res = getListLength(L);
printf("线æ§è¡¨çé¿åº¦æ¯:%d",res);
break;
case 9:
res = listEmpty(L);
if(res){
printf("线æ§è¡¨çæ¯ç©ºç");
}else{
printf("线æ§è¡¨çæ¯ä¸æ¯ç©ºç");
}
break;
}
}
return OK;
}
线æ§è¡¨çç¹å¾æ¯:
1. å
ç´ ä¹é´æ¯æåºç,å¦æå
ç´ åå¨å¤ä¸ª,å第ä¸ä¸ªå
ç´ æ å驱,æåä¸ä¸ªæ å继,å
¶å®å
ç´ é½æä¸åªæä¸ä¸ªå驱åå继.
2. å
ç´ ä¸ªæ°æ¯æéç. å½n=0æ¯,称为空表
线æ§è¡¨å®ç°æ¹å¼æ两ç§,åå«æ¯é¡ºåºåå¨ç»æåé¾å¼åå¨ç»æ,å®ä»¬ä¹é´åæä¼ç¼ºç¹ . æ ¹æ®éæ±çä¸åè¿è¡éæ©ä¸åçåå¨ç»æ.
线æ§è¡¨åå¨ç»æçä¼ç¼ºç¹
ä¼ç¹:
1. æ 须为表ä¸å
ç´ ä¹åçé»è¾å
³ç³»èå¢å é¢å¤çåå¨ç©ºé´
2. å¯ä»¥å¿«éçåå表ä¸çä»»ä¸ä½ç½®çå
ç´
缺ç¹:
1. æå
¥åå é¤æä½éè¦ç§»å¨å¤§éå
ç´
2. å½çº¿æ§è¡¨é¿åº¦ååè¾å¤§æ¶,é¾ä»¥ç¡®å®åå¨ç©ºé´ç容é.
3. é æåå¨ç©ºé´çâç¢çâ.
温馨提示:答案为网友推荐,仅供参考