博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表基础操作及其逆置
阅读量:5157 次
发布时间:2019-06-13

本文共 1500 字,大约阅读时间需要 5 分钟。

纠结了很久的一道链表题。果然我数据结构学得好渣。纠结了大约两个星期。最后提交作业的时间都截止了,还没交,再交的时候过期了,交不了了。只好跟老师说声,然后她又改了时间。

最后总结出了是我的指针和结构体学得不好额。哎,谁让学校只教了我们半本C语言。。。还得靠自学。

其实就算是教了前半本C,我当时学得也是渣的可以。那半本还不都是后来假期每天敲代码的时候掌握的。。

#include 
#include
typedef int ElemType; typedef struct LNode /*定义结点结构体类型*/{ ElemType data; /*数据域*/ struct LNode *next; /*指针域*/} LNode;LNode *creatlist(int n) /*创建一个含 n 个结点的链表*/{ LNode *head=NULL, *p; int i; for(i=0;i
data); /*对新结点的数据域赋值*/ if(i==0) /*创建链式基本线性表的头结点*/ { head=p; head->next=NULL; } else /*创建链式基本线性表中的其他结点*/ { p->next=head; head=p; } } return(head);}void DispList(LNode *head) /*输出单链表*/{ LNode *p; p=head; while (p!=NULL) { printf("%4d ",p->data); p=p->next; } printf("\n");}LNode *reverlist(LNode *head) /*逆置链式基本线性表*/{ LNode *p,*q,*r; p=head; q=p->next; while(q!=NULL) { r=q->next; q->next=p; p=q; q=r; } head->next=NULL; head=p; return(head);}void main(){ LNode *head=NULL,*p; int n; printf("input number of node:"); /*输入链式基本线性表的结点数*/ scanf("%d",&n); head=creatlist(n); /*创建链式基本线性表*/ printf("\n\n逆置前"); DispList(head); /*输出创建成功的链式基本线性表*/ printf("\n"); p=reverlist(head); /*将链式基本线性表逆置*/ printf("\n\n逆置后"); DispList(p); /*输出逆置后的线性表*/}

转载于:https://www.cnblogs.com/unclejelly/archive/2013/04/10/4082172.html

你可能感兴趣的文章
EF 4.1 Code First Walkthrough
查看>>
常用MySQL语法
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
如何在键盘出现时滚动表格,以适应输入框的显示
查看>>
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>
C# list导出Excel(二)
查看>>
CAS 单点登录模块学习
查看>>
跟着辛星用PHP的反射机制来实现插件
查看>>
Android应用开发-网络编程①
查看>>
input中的name,value以及label中的for
查看>>
静态库制作-混编(工程是oc为基础)
查看>>