首页
我的空间
圈子
伙伴
消息
即时聊天
|
编辑我的资料 | 登录 注册 退出 |
|
中兴在我们学校的笔试,最后的大题</P> (其实这些大公司的笔试不难,也不就是如此,只要学一下数据结构就可以搞定!) 排序及查找方法 /*冒泡排序法*/ /*显示*/
aga: case 4: case 5:{ printf("exit!\n");break;}
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<i-1){p=p->next;++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<i-1){p=p->next;++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
Status GetElem_L(LinkList &L,int i,ElemType &e){ p=L->next,j=1; while(p&&j<i){p=p->next;++j;} if(!p||j>i) return ERROR; e=p->data; return OK; }//GetElem_L 5归并两个单链表的算法 void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){ //已知单链线性表La和Lb的元素按值非递减排列 //归并后得到新的单链线性表Lc,元素也按值非递减排列 pa=La->next;pb=Lb->next; Lc=pc=La; while(pa&&pb){ if(pa->data<=pb->data){ pc->next=pa;pc=pa;pa=pa->next; }else{pc->next=pb;pc=pb;pb=pb->next;} } pc->next=pa?pa:pb; free(Lb); }//MergeList_L
头指针与头结点的区别: 头指针只相当于结点的指针域,头结点即整个线性链表的第一个结点,它的数据域可以放数据元素,也可以放线性表的长度等附加信息,也可以不存储任何信息。 |
更多精品面经, 尽在
周三访谈录
:
|