[C]将原有链表中的元素倒序输出
来源:互联网 发布:js中跳出for循环 编辑:程序博客网 时间:2024/06/05 15:35
结点数据域依次为 a1,a2.........,an的一个单链表所有结点逆置,即第一个结点数据域变为 an
最后一个结点数据域变为 a1?
#include<stdio.h>
#include<stdlib.h>
struct list
{
int num;
struct list *next;
}*head;
void new_record()
{
struct list *p,*newer;
newer=(struct list *)malloc(sizeof(struct list));
if(head==NULL)
head=newer;
else
{
p=head;
while(p->next!=NULL)
p=p->next;
p->next=newer;
}
p=newer;
printf("please enter the number:");
scanf("%d",&p->num);
p->next=NULL;
printf("/n/n/n");
}
void display()
{
struct list *p;
if(head==NULL)
printf("this is NULL/n");
else
{
p=head;
do
{
printf("the num is %d/n",p->num);p=p->next;
}while(p!=NULL);
}
}
void change()
{
struct list *p,*p2,*temp;
p=head;
p2=p->next;
temp=p2->next;
p->next=NULL;
p2->next=p;
while(temp!=NULL)
{
p=p2;
p2=temp;
temp=temp->next;
p2->next=p;
}
head=p2;
}
void main()
{
int i,flag=1;
head=NULL;
while(flag)
{
printf("1.insert 2.display 3.exit 4.change/n");
scanf("%d",&i);
switch(i)
{
case 1:new_record();break;
case 2:display();break;
case 3:flag=0;break;
case 4:change();break;
}
}
}
这个做法是使原来指向改变,最后使HEAD指向最后一个元素,如:原来p1->p2,现改为 p2->p1
- [C]将原有链表中的元素倒序输出
- <C++>将字符串倒序输出
- 将一个链表倒序输出
- 利用String类和StringBuffer类,将String数组中的元素倒序输出(1)
- 倒序输出链表
- 倒序输出链表
- 倒序输出链表
- 链表倒序输出
- 一个将字符串中的单词倒序输出的算法
- 将一句话中的单词倒序输出并不改变其标点
- 递归倒序输出链表
- 链表的倒序输出
- 链表的倒序输出
- C链表倒序
- java 数组元素倒序输出
- 将字符串abc倒序输出
- 汇编程序:将字符串倒序输出
- 创建一个简单的单向链表并将其倒序输出
- 网络写作一年稿酬最高可达150万元
- oracle imp导入的一些实例
- asp.net扩展Login控件,添加图文验证码
- asp.net2.0中MultiView应用实例
- 激发自己的潜能
- [C]将原有链表中的元素倒序输出
- 程序自删除实现 可用的SDK的
- SQL Server2005的好工具——数据库发布向导(Database Publishing Wizard)
- 星际官方小说《刀锋女王》——第4章(续2)
- 推荐:Java开发者必去的技术网站
- MySQL5解压缩版windows下安装配置应用总结
- C#[添加/消除]自启动项源代码
- 作为幕后黑手的IBM?
- [转]优化fedora core7