#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct Node) struct Node
{
int data;
struct Node* Next;
}; typedef struct Node *PtrToNode;
typedef PtrToNode List;//表
typedef PtrToNode Position;//位置 List ReCreatTable(int n);//逆序建立单链表
void PrintTable(Position head);//遍历单链表
void Insert5th(Position head);//在单链表第五个元素前插入一个值为999的元素
void Delete5th(Position head);//删除单链表第五个元素 List ReCreatTable(int n)
{
int i;
Position p, head;
head = (Position)malloc(LEN);
head->Next = NULL;
for (i = ; i <= n; i++)
{
p = (Position)malloc(LEN);
printf("请输入元素:");
scanf("%d", &p->data);
p->Next = head->Next;
head->Next = p;
}
return (head);
} void PrintTable(Position head)
{
Position s;
s = head->Next;
printf("链表:");
while (s != NULL)
{
if (s->Next == NULL)
printf("%d\n", s->data);
else
printf("%d ", s->data);
s = s->Next;
}
} void Insert5th(Position head)
{
Position P, TmpCell;
TmpCell = (Position)malloc(LEN);
P = head;
int i;
for (i = ; i < ; i++)
{
P = P->Next;
}
if (TmpCell == NULL)
printf("Out of space!!!");
TmpCell->data = ;
TmpCell->Next = P->Next;
P->Next = TmpCell;
} void Delete5th(Position head)
{
Position P, TmpCell;//TemCell是删除元素
P = head;
int i;
for (i = ; i < ; i++)
{
P = P->Next;
TmpCell = P->Next;
}
P->Next = TmpCell->Next;
free(TmpCell);
} int main()
{
int n;
Position head;
printf("请输入链表元素个数:");
scanf("%d", &n);
head = ReCreatTable(n);
PrintTable(head);
printf("在第五个元素前插入999后");
Insert5th(head);
PrintTable(head);
printf("删除第五个元素后");
Delete5th(head);
PrintTable(head);
return ;
}

C语言链表:逆序建立单链表的更多相关文章

  1. SDUT OJ 数据结构实验之链表二:逆序建立链表

    数据结构实验之链表二:逆序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...

  2. SDUT-2117_数据结构实验之链表二:逆序建立链表

    数据结构实验之链表二:逆序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入整数个数N,再输入N个整数,按照 ...

  3. 链表逆序(JAVA实现)

    题目:将一个有链表头的单向单链表逆序 分析: 链表为空或只有一个元素直接返回: 设置两个前后相邻的指针p,q,使得p指向的节点为q指向的节点的后继: 重复步骤2,直到q为空: 调整链表头和链表尾: 图 ...

  4. ZT C语言链表操作(新增单向链表的逆序建立)

    这个不好懂,不如看 转贴:C语言链表基本操作http://www.cnblogs.com/jeanschen/p/3542668.html ZT 链表逆序http://www.cnblogs.com/ ...

  5. Reverse Linked List II 单向链表逆序(部分逆序)

    0 问题描述 原题点击这里. 将单向链表第m个位置到第n个位置倒序连接.例如, 原链表:1->2->3->4->5, m=2, n =4 新链表:1->4->3-& ...

  6. ZT 链表逆序

    链表逆序 原帖地址http://blog.csdn.net/niuer09/article/details/5961004 分类: C/C++2010-10-23 17:23 18425人阅读 评论( ...

  7. 链表逆序,java实现

    package com.cskaoyan.linkedlist; //反转数组 public class LinkedListDemo2 { public static Node reverse(No ...

  8. C# 单向链表 逆序(递归)

    static void Main(string[] args) { while (true) { LinkedList L = new LinkedList(); L.Add(new Node(&qu ...

  9. 链表逆序---python

    class ListNode: Value = '' # 节点要储存的值,因为Python是弱类型,因此无需传入泛型 Next = None # 下一个节点,初始化时为空值 def __init__( ...

随机推荐

  1. 关于footer 小于一屏还要在底部显示的思考

    首先想到了页面是动态的  就是js 计算 但是有一个简单的方法就是 运用定位 1 footer 的祖先元素没有定位属性 absoulite (这样他就会相对于文档定位) left:0 bottom : ...

  2. 102. Binary Tree Level Order Traversal二叉树层序遍历

    网址:https://leetcode.com/problems/binary-tree-level-order-traversal/ 参考:https://www.cnblogs.com/grand ...

  3. MySQL常用的七种表类型(转)

    MySQL常用的七种表类型(转)   其实MySQL提供的表类型截至到今天已经有13种,各有各的好处,但是民间流传的常用的应该是7种,如果再细化出来,基本上就只有两种:InnoDB.MyIASM两种. ...

  4. springboot 默认异常处理

    SpringBoot默认有自定义异常处理的体系,在做SpringBoot项目的时候,如果是抛出了运行时异常,springBoot并会对异常进行处理,返回如下异常信息: { "timestam ...

  5. C++标准模板库(STL)之Map

    1.Map的常用用法 map:映射.可以将任何基本类型,结构体,STL容器映射到任何基本类型包括容器. 使用map,需要加map的头文件,#include<map>和using names ...

  6. Oracle通用维、父子维相互转换

    所谓通用维即维度层级1.2.3均作为字段展示为列,父子维即维度id+父级维度+维度层级字段 通用维 lvl_id1 lvl_name1 lvl_id2 lvl_name2 lvl_id3 lvl_na ...

  7. Excel中如何截取字符串中指定字符后的部分字符

    1.如何给某列属性为时间整体加一个时间值:      场景一:假如我有一个excel中的某一列如下图所示,如何将该列的时间(用B代替整列)整体加一分钟呢?方法很简单,在空白单元格填写时间格式图中A所示 ...

  8. shogun docker image 中import shogun error

  9. learning coap protocol

    reference: http://coap.technology/spec.html

  10. Mac中java实现自动打开软件问题

    Runtime.getRuntime().exec("/Applications/NetEaseMusic.app/Contents/MacOS/NetEaseMusic");遗留 ...