创建链表并插入数据(有序)

原创 2016年08月28日 15:20:54
//
//  main.m
//  node
//
//  Created by tk on 16/8/28.
//  Copyright © 2016年 Company. All rights reserved.
//

#import <Foundation/Foundation.h>
#include <stdio.h>
#include <stdlib.h>

//定义结构体
struct node {
    int data;
    struct node *next;
};

/*链表*/
void nodeTest() {
    struct node  *head, *p, *q, *t;
    int i, n, a;

    //设置头指针为空
    head = NULL;
    //初试化当前指针
    q = NULL;
    //输入链表的数量
    scanf("%d", &n);
    //输入
    for (i = 0; i < n; i++) {
        scanf("%d", &a);
        //申请存储空间
        p = (struct node *)malloc(sizeof(struct node));
        p->data = a;
        p->next = NULL;
        if (head == NULL) {
            head = p;
        }else {
            q->next = p;
        }
        q = p;//指针q指向当前节点
        //至此,一个节点的数据就完成了
    }

    //输出链表
    t = head;
    while (t != NULL) {
        printf("%d ", t->data);
        t = t->next;//指向下一个节点
    }


    printf("读入需要插入的数据:");
    scanf("%d", &a);
    t = head;

    while (t != NULL) {
        if (t->next == NULL || t->next->data > a)
        {
            struct node *d = (struct node *)malloc(sizeof(struct node));
            d->data = a;
            d->next = t->next;
            t->next = d;
            break;
        }
        t = t->next;
    }

    t = head;
    while (t != NULL) {
        printf("%d ", t->data);
        t = t->next;
    }

    getchar();
    getchar();
    return;
}

int main(int argc, const char * argv[]) {

    nodeTest();
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

编程实现单链表的插入

Node *insert(Node **head,int index,int value){ Node *p=*head; //头结点之前插入 if (indexdata=value; no...
  • u200814499
  • u200814499
  • 2014年10月11日 13:02
  • 460

c#实现单链表_查找插入的操作

  • 2010年04月30日 11:31
  • 44KB
  • 下载

链表操作之插入数据

链表插入操作
  • liu16659
  • liu16659
  • 2017年04月16日 22:20
  • 1039

有序链表的插入

已知一个递增有序链表L(带头结点,元素为整数),编写程序将一个新整数插入到L中,并保持L的有序性。其中单链表的类型定义参考如下: typedef int elementType; typedef ...
  • m0_38015368
  • m0_38015368
  • 2017年09月13日 14:56
  • 530

C语言实现有序单链表的插入

我们先来声明本文演示所用的链表的节点:
  • sharkleegroup
  • sharkleegroup
  • 2013年09月27日 19:44
  • 3503

向头指针为 L的有序单链表(从小到大有序)中插入一个结点,使插入后链表仍然有序

原题:有一个有序单链表(从小到大有序),表头指针为 L ,编写一个函数向该单链表中插入一个元素为 a 的结点,使插入后链表仍然有序。 说明:以下程序先自动生成一个从小到大有序链表,然后要求输入插入结点...
  • huanfengyun
  • huanfengyun
  • 2013年05月31日 23:27
  • 3643

数据结构之简单链表(尾部插入数据)

#include #include typedef struct node { int key; struct node *Next; }Node; void Insert(int num...
  • cfan0801
  • cfan0801
  • 2011年11月30日 15:59
  • 4653

往有序链表的插入元素

在有序链表中插入元素时,最好设置两个指针,一前一后,后面指针负责比较大小,前面的指针负责插入操作。#include "stdafx.h" #include #include struct vNode...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2015年07月05日 14:59
  • 1498

向有序循环单向链表中插入节点

给定一个有序的循环单向链表和一个整数,要求将以该整数为值的新节点插入原链表中,新链表要求仍然有序。 class Node { public: Node(int v) ...
  • brucehb
  • brucehb
  • 2015年02月27日 00:33
  • 1426

双链表插入 删除详解

节点结构: struct both_node { int key; struct both_node *prev; struct both_node *next; both_node(int...
  • zhou753099943
  • zhou753099943
  • 2016年06月07日 18:09
  • 923
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建链表并插入数据(有序)
举报原因:
原因补充:

(最多只允许输入30个字)