面试题五 C/C++面试秘笈 之链表的正向排序--程序员面试题
来源:互联网 发布:it狂人女主角 编辑:程序博客网 时间:2024/06/10 02:53
/**
*面试题9
*单链表的正向排序
*/
typedef struct linkListSort{
int data;
linkListSort * next;
}linkListSort;
linkListSort * insert_sort(void)
{
structlinkListSort * head =NULL,*New,*cur,*pre;
int data =0;
while (1) {
printf("please input the data:\n");
cin>>data;
if (data ==0) {//如果是0,结束
break;
}
New = (structlinkListSort*)malloc(sizeof(structlinkListSort));
New->data = data;
New->next =NULL;
if (head ==NULL) {
head = New;//在第一次循环时对head赋值
continue;
}
if (New->data <= head->data) {
//在head之前插入节点
New->next = head;
head = New;
continue;
}
cur = head;
if (New->data > cur->data && cur->next != NULL) { //找到需要插入的位置
pre = cur;
cur = cur->next;
}
if (cur->data >= New->data) {//把它插入到pre和cur之间
pre->next = New;
New->next = cur;
}else{
cur->next = New;
}
}
return head;
}
/**
*编程实现一个单链表的打印
*/
void linkListPrint(linkListSort *head)
{
int index =0;//总得个数
linkListSort *p;
if (head->next ==NULL) {//链表为空
cout<<"Link is empty!"<<endl;
return;
}
p = head->next;
while (p !=NULL) {//遍历链表
printf("the %dth is node:%d\n",++index,p->data);//打印链表元素
p = p->next;
}
}
如果有任何问题,欢迎下方留言谈论,或者加入QQ群83459374交流
- 面试题五 C/C++面试秘笈 之链表的正向排序--程序员面试题
- 面试题六 C/C++面试秘笈 之约瑟夫问题的解答--程序员面试题
- 面试题四 C/C++面试秘笈 之判断链表是否存在环形链表问题-程序员面试题
- 面试题三 C/C++面试秘笈 查找单链表的中间元素 --程序员面试题
- 面试题一 C/C++面试秘笈之单链表的创建,增删改查及打印
- 面试点:C语言经典面试题(C语言面试题分析之五)
- 面试题二 C/C++面试秘笈 之单链表逆转/反转
- 程序员面试题--堆排序的C语言实现
- C/C++面试题五
- C/C++面试题五
- C/C++面试题之链表
- C/C++程序员面试题
- C/C++程序员面试题
- C/C++程序员面试题
- C/C++程序员面试题
- C/C++程序员面试题
- C面试题--之^运算。
- 面试题之C语言
- linux正则表达式入门及文件操作命令进阶
- 在Windows下搭建Android开发环境
- SQL2005 性能监视器计数器错误解决方法
- 关于在android webview中使用File Upload控件的问题
- 浅谈 Java 关于接口与抽象类的理解(后续更新)
- 面试题五 C/C++面试秘笈 之链表的正向排序--程序员面试题
- java 调用系统默认 浏览器打开指定地址
- 代理 kvo和通知
- Linux初讲——单用户模式(常用于更改root密码)
- viewpager中多fragment及时加载
- POJ 2594 Treasure Exploration(最小路径覆盖)
- nova虚拟机的CPU配置-关于sockets,cores,threads的限制
- C#入门教程
- 最小生成树-Prim算法和Kruskal算法