练习使用链表数据结构解决一件小问题

原创 2016年08月29日 22:05:01

周末任务:

今天脑瓜一抽 突然想做链表的练习题:





#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <assert.h>
typedef struct node_tmp
{
    int data;
    struct node_tmp* next;    
}node;
//创建单链表
node* create(int n)
{
    assert(n>0);
    node* head;
    head = (node*)malloc(sizeof(node));
    head->next = NULL;
    printf("请输入head节点的值(int型):\n");
    scanf("%d",&head->data);
    if(1==n)
    {
        return head;
    }
    node* p = head;
    for(int i = 2;i <= n;i++)
    {
        node* tmp = (node*)malloc(sizeof(node));
        tmp->next = NULL;
        printf("请输入第%d个节点的值(int型):\n",i);
        scanf("%d",&tmp->data);
        p->next = tmp;
        p = tmp;
    }
    return head;
}

//问题1:链表逆置
//head指针不断后移,指针反向即可

node* reverse(node* head)
{
    if(head != NULL && head->next != NULL)
    {
        node* p = head;
        node* q = head->next;
        p->next = NULL;
        while(q->next != NULL)
        {
            head = q->next;
            q->next = p;
            p = q;
            q = head;
        }
        head->next = p;
    }
    return head;
}


void nodePrint(node* head)
{
    int i = 1;
    node* p = head;
    while(p != NULL)
    {
    printf("node%d->%d\n",i++,p->data);
    p = p->next;
    }
    return;
}


void main()
{
node* head;
head = create(3);
nodePrint(head);
printf("------------------\n");
head = reverse(head);
nodePrint(head);
free(head);
}


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

数据结构及小问题程序代码实现

  • 2015年08月08日 15:20
  • 9.69MB
  • 下载

实战数据结构(4)_循环单链表解决约瑟夫问题

/************************************************************************/ /* author: lynnbest 2013...

数据结构(三):循环单链表解决约瑟夫问题

#include using namespace std; //小孩结点类型 struct Child{ int no; //小孩编号 Child* next; //指针域,...

数据结构之链表——环相关问题及解决思路汇总

链表是一种常见的数据结构,无论是实际应用还是面试中,出现的频率都比较高,链表适宜存储关系不固定的数据,属于动态存储,区别于数组结构的静态存储。本篇小博主要围绕三个常见的链表问题进行分析。 一、建立一...

数据结构—Java版链表相交问题的终极解决方案

【题目】 判断两个链表(链表可以有环,可以无环)是否相交,若相交,则返回相交节点,不相交则返回null 1.判断两个链表是否相交 【思路】 两个链表分三种情况: ①两个链表均为非环链表;...

数据结构链表练习

  • 2014年07月23日 10:02
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习使用链表数据结构解决一件小问题
举报原因:
原因补充:

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