c语言算法笔试(1)-------链表逆序
来源:互联网 发布:淘宝信用借钱 编辑:程序博客网 时间:2024/04/30 03:27
本算法复杂度为O(n)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
typedef struct A{
int X;
A *next;
}A;
using namespace std;
A *input (A *head)//链表输入,输入0时结束。
{
A *p;
A *q;
int n;
p=NULL;
q=NULL;
scanf("%d",&n);
while(n>0)
{
p=(A *)malloc(sizeof(A));
p->X=n;
p->next=NULL;
if (head==NULL)
{
head=(A *)malloc(sizeof(A));
head=p;
}
else
q->next=p;
q=p;
scanf("%d",&n);
}
return head;
}
void print(A *head)
{
A *p;
p=head;
while(p!=NULL)
{
printf("%d ",p->X);
p=p->next;
}
printf("\n");
}
A *A_reverse(A *head)//链表逆序
{
A *p;
A *q;
A *temp;
q=NULL;
temp=NULL;
p=head;
q=p->next;
while(p->next!=NULL)
{
temp=q->next;
q->next=p;
if (p==head)
{
p->next=NULL;
}
p=q;
if (temp!=NULL)
q=temp;
else
break;
}
head=q;
return head;
}
int main()
{
A *head;
head=NULL;
head=input(head);
print(head);
head=A_reverse(head);
print(head);
return 0;
}
- c语言算法笔试(1)-------链表逆序
- C语言笔试题(8)——链表逆序
- C语言链表逆序
- 链表逆序(Intel笔试题)
- C语言-----链表的逆序
- C语言笔试算法题
- 《C算法》读书笔记(5):单向链表逆序
- 编程算法 - 链表逆序 代码(C)
- C语言经典算法100例-073-链表逆序插入节点
- 链表逆序(C++)
- 链表逆序算法
- 常见C语言面试题之九:链表逆序
- 链表逆序[c]
- C语言链表操作(新增单向链表的逆序建立)
- 链表逆序的笔试题
- C语言实现双向非循环链表(不带头结点)的逆序打印
- 【面试算法系列】逆序输出一个单链表 - C语言实现
- C语言作业-advance4-1-逆序输出
- Swift - 使用CoreLocation实现定位(经纬度、海拔、速度、距离等)
- 8.2.1.13 Multi-Range Read Optimization 多个范围读优化
- android内存优化
- JS中对象的建立
- CardView 去掉 padding
- c语言算法笔试(1)-------链表逆序
- 机器学习:PageRank算法--Scala实现
- openwrt 防火墙
- ios断点续传:NSURLSession和NSURLSessionDataTask实现
- 从头认识java-2.1 操作符
- Openlayers2调用ArcGis的WMTS服务,restful和kvp两种模式
- 二进制运算技巧
- USB2.0概述
- 同一用户不同终端登录限制(附:同一浏览器不同用户登录解决方案)