2006年12月中興在我們學校的筆試,最後的大題
(其實這些大公司的筆試不難,也不就是如此,只要學一下數據結構就可以搞定!)
??
排序及查找方法?#include
aga:?printf("chang:1: use watching method finding????? 2:use half method finding????? 3: use directness intsert method sort????? 4:use bubble up method sort????? 5:exit");?scanf("%d",&chang);?switch (chang)?{case 1:?????? {creat(a);?printf("Please int the search number:");?scanf("%d",&x);?printf("The number station is:%d",search(a,N,x));?goto aga;?}? case 2:???? { creat(a);?????? insertsort(a);?????? print(a);?????? printf("Please int the search number:");?????? scanf("%d",&x);?????? printf("The number station is:%d",halfsearch(a,N,x));?????? goto aga;????? }?? case 3:???? {creat(a);????? insertsort(a);????? print(a);????? goto aga;???? }
?? case 4:???? {creat(a);????? mpsort(a);????? print(a);????? goto aga;???? }
?? case 5:{ printf("exit!");break;}?? default:{printf("Error!"); goto aga;}}}?
?
二、線性鏈表的存儲實現
struct LNODE{
ElemType data;
struct LNODE *next;
};
typedef struct LNODE LNode;
typedef struct LNODE * LinkList;
1初始化操作
Status Init_L(LinkList L){
if (L=(LinkList *)malloc(sizeof(LNode)))
{L->next=NULL;return 1;}
else return 0;
}
2插入操作
Status ListInsert_L(LinkList &L,int i,ElemType e){
p=L,j=0;
while(p&&j
if(!p||j>i-1) return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;s->next=p->next;
p->next=s;
return OK;
}//ListInsert_L
?
3刪除操作
Status ListDelete_L(LinkList &L,int i,ElemType &e){
p=L,j=0;
while(p&&j
if(!p->next||j>i-1) return ERROR;
q=p->next;p->next=q->next;
e=q->data;free(q);
return OK;
}//ListDelete_L