链表的简单操作
来源:互联网 发布:房屋外观设计简单软件 编辑:程序博客网 时间:2024/05/22 07:05
#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node { ElementType Data; PtrToNode Next;};typedef PtrToNode List;List Read(); void Print( List L ); List Reverse( List L );int main(){ List L1, L2; L1 = Read(); L2 = Reverse(L1); Print(L1); Print(L2); return 0;}List Read(){ //创建链表 int n;scanf("%d",&n);List head,p,q;head=NULL;int i,a;for(i=0;i<n;i++){scanf("%d",&a);p=(List)malloc(sizeof(struct Node));p->Data=a;p->Next=NULL;if(head==NULL) head=p;else q->Next=p;q=p;}return head;}void Print( List L ){ //打印链表 List t;t=L;while(t!=NULL){printf("%d ",t->Data);t=t->Next;}printf("\n");}/*List Reverse( List L ){ //借助辅助空间 List p1=NULL,p2; while(L!=NULL){ p2=(List)malloc(sizeof(struct Node)); if(p1==NULL) p2->Next=NULL; else p2->Next=p1; p1=p2; p2->Data=L->Data; L=L->Next; }return p1;}*/List Reverse( List L ){//原地逆转 List p=L,q=NULL,listend=L;if(L==NULL) return NULL;while(listend->Next!=NULL) listend=listend->Next;while(p!=listend){L=p->Next;listend->Next=p;if(q==NULL) p->Next=NULL;else p->Next=q;q=p;p=L;}return L;}
阅读全文
0 0
- 简单链表的操作
- 链表的简单操作
- 链表的简单操作
- 链表的简单操作
- 链表的简单操作
- 链表的简单操作
- 链表的简单操作
- 链表的简单操作
- 线性表-链表的简单操作
- 一个简单的链表操作程序
- 关于链表的简单操作
- 两个简单的链表操作
- 数据结构:链表的简单操作
- C语言 链表的简单操作
- 双向链表的简单操作
- C++ 双向链表的简单操作
- 链表的定义与简单操作
- 链表中文件的简单操作
- 获取样式的时候用offsetWidth 这类有Bug 要用 obj.currentStyle.width 或getComputedStyle(obj,null).width
- codeforce Maximum of Maximums of Minimums(区间划分 求区间最小值最大值问题)
- error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http:/
- PullToRefreshGridView
- 创建线程继承Thread和实现Runnable接口
- 链表的简单操作
- [HDU]4507 恨7不成妻 数位Dp好题
- BZOJ 1596: [Usaco2008 Jan]电话网络 树形dp||贪心
- Windows 下 Apache2 Django配置(针对找不到mod_wsgi.so)
- NetDataUtil_获取网络数据的工具类
- 浅论3大方法求单源最短路以及2大方法求最小生成树
- 记忆网络之Hierarchical Memory Networks(架构分层)
- U盘启动盘恢复原来的大小
- Python黑帽子学习笔记-----第三章