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

原创 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;
}


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

相关文章推荐

数据结构中链表的C#实现部分示例

本文是将数据结构中常用的链表实现(C#语言)的个人课堂示例展现了一下,旨在为初学者以参考。其中大部分代码做了注释,请大家批评指正!...

单链表的插入与删除

顺序结构的缺点还是蛮大的,现在来看看单链表的插入与删除。 单链表中,在C语言可以用结构体指针描述: typedef struct Node { ElemType data; struct...
  • hacke2
  • hacke2
  • 2012年02月07日 16:06
  • 28841

链表操作之插入数据

链表插入操作

C#版的数据结构(对链表的操作)

我们一般只是学过C/C++的数据结构,想必学C#的学生会疑惑,为什么C#没有数据结构呢,那我来告诉你,其实C#也是有数据结构的,只不过我们不了解罢了,经过我半天的编程,终于把C#的数据结构写出来了,也...

链表插入的三种方式

链表的插入: 一、头插 1、判断空链 : a:新节点指向NULL b: 头指向新节点 2、非空链 a: 新节点指向头(第一个节点) b: 头指向new 综上:...

SQLite创建表并添加数据

- (void)viewDidLoad { [super viewDidLoad]; //创建表 [self creatTable]; //插入数据 [self...

C:链表的操作,如何创建一个链表并打印

链表是一种常见的重要的数据结构,它是动态的进行内存存储分配的一种结构。   用数组存放数据时,必须事先定义固定的长度(即元素个数),但是事先难以确定有多少个元素时,则必须把数组定义的足够大,以保证...
  • xuleilx
  • xuleilx
  • 2012年02月18日 14:11
  • 6965

Hive学习 第四课 创建表并load 数据到表

本章将介绍如何创建一个表以及如何将数据插入。创造表的约定在Hive中非常类似于使用SQL创建表。 CREATE TABLE语句 Create Table是用于在Hive中创建表的语句。语法和示例如...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建链表并插入数据(有序)
举报原因:
原因补充:

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