单链表面试题
2015-07-30 15:39
579 查看
例1:编程实现一个单链表的建立。
[/code]
例2:编程实现单链表的测长。
[/code]
例3:编程实现单链表的打印。
[/code]
例4:编程实现单链表删除结点。
[/code]
例5:编程实现单链表的插入.
[/code]
例6:编程实现单链表的排序.
[/code]
[code=objc]#include <iostream> #include <stdio.h> #include <string.h> #include <conio.h> using namespace std; typedef struct student; { int data; struct student *next; }node; node *creat() { node *head,*p,*s; int x,cycle=1; head=(node*)malloc(sizeof(node)); p=head; while(cycle) { printf("\nplease input the data:"); scanf("%d",&x); if(x!=0) { s=(node*)malloc(sizeof(node)); s->data=x; printf("\n %d",s->data); p->next=s; p=s; } else cycle=0; } head=head->next; p->next=NULL; printf("\n yyy %d",head->data); return(head); }
[/code]
例2:编程实现单链表的测长。
int length(node *head) { int n=0; node *p; p=head; while(p!=NULL) { p=p->next; n++; } return(n); }
[/code]
例3:编程实现单链表的打印。
void print(node *head) { node *p;int n; n=length(head); printf("\nNow,These %d records are:\n",n); p=head; if(head!=NULL) while(p!=NULL) { printf("\n uuu %d ",p->data); p=p->next; } }
[/code]
例4:编程实现单链表删除结点。
node *del(node *head,int num) { node *p1,*p2; p1=head; while(num!=p1->data&&p1->next!=NULL) { p2=p1;p1=p1->next; } if(num==p1->data) { if(p1==head) { head=p1->next; free(p1); } else p2->next=p1->next; } else printf("\n%d could not been found",num); return(head); }
[/code]
例5:编程实现单链表的插入.
node *insert(node *head,int num) { node *p0,*p1,*p2; p1=head; p0=(node *)malloc(sizeof(node)); p0->data=num; while(p0->data>p1->data&&p1->next!=NULL) { p2=p1;p1=p1->next; if(p0->data<=p1->data) { if(head==p1) { p0->next=p1; head=p0; } else { p2->next=p0; p0->next=p1; } } else { p1->next=p0;p0->next=NULL; } return(head); }
[/code]
例6:编程实现单链表的排序.
node *sort(node *head) { node *p,*p2,*p3; int n;int temp; n=length(head); if(head==NULL||head->next==NULL) return head; p=head; for(int j=1;j<n;++j) { p=head; for(int i=0;i<n-j;++i) { if(p->data>p->next->data) { temp=p->data; p->data=p->next->data; p->next->data=temp; } p=p->next; } } return head; }
[/code]
相关文章推荐
- 黑马程序员-面试题(一)-交通灯管理系统
- 面试中发现的不足点
- 面试官最想听哪些话?
- ios面试总结
- 程序员的出路在哪里
- 【剑指Offer面试题】 九度OJ1518:反转链表
- 杭州嘉云数据电话面试
- 黑马程序员---iOS学习基础---数组与函数
- 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
- 黑马程序员---iOS学习基础---循环控制
- 【剑指Offer面试题】 九度OJ1517:链表中倒数第k个结点
- 12年程序员得到的12个经验教训
- 每个程序员和设计师可做的10项运动
- 由一道淘宝面试题到False sharing问题
- 微软面试题
- 黑马程序员--反射
- 程序员Web开发手册
- 【剑指Offer面试题】 九度OJ1516:调整数组顺序使奇数位于偶数前面
- 程序员必备技能
- 程序员如何爱护自己的眼睛