链表的操作

#include <iostream>

using namespace std;
int aleng = 10;

struct  node
{
    int data=0;
    int nlength=0;
    node *pnext=nullptr;
};

node* creat_link(int length)//创建一个带头节点的链表
{
    node *head,*p, *q;
    p = new node;//p现在开辟了内存
    p->data = -1;//-1表示头节点
    p->nlength = -1;
    head = p;//头节点有了定义
    for (int i = 0; i < length; i++)
    {
        q=new node;//q现在开辟了内存
        q->data = i;
        p->pnext = q;//传递的都是地址
        p = p->pnext;
    }
    return head;
}

node* insert_link(node *pnode,int length,int dat)
{
    node* head = pnode;
    node* q = new node;

    if (length<0||length>aleng)
    {
        return nullptr;
    }
    for (int i = 0; i < length; i++)
    {
        pnode = pnode->pnext;
    }
    q->data = dat;
    q->pnext = pnode->pnext;
    pnode->pnext = q;
    aleng++;
    return head;
}

int main()
{
    node *node1,*head;
    head=node1=creat_link(10);
    for (int i = 0; i < aleng; i++)
    {
        cout << node1->data << "->";
        node1 = node1->pnext;
    }
    cout << endl;

    node1=head;//设置节点开始的位置

    insert_link(node1, 4, 5);
    for (int i = 0; i < aleng; i++)
    {
        cout << node1->data << "->";
        node1 = node1->pnext;
    }
    system("pause");
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • github->demo1、创建(单链表、双链表、循环链表)2、翻转单链表(递归和非递归)3、判断链表是否存在环。...
    不会游泳De鱼阅读 167评论 0 1
  • 链表结构 typedef struct node{ int data; struct node *next; ...
    CodeFXQ阅读 319评论 0 0
  • 本文主要是结合我平时遇到的一些问题,分析一下Oracle数据库中拉链表的一些非常规操作,即将多个拉链表合并和将有多...
    码语者阅读 10,526评论 0 6
  • 引言 在上篇文章数据结构与算法之链表(二)单链表的基本实现中我们学习了单链表的基本概念,本篇我们在此基础之上研究单...
    kakaxicm阅读 759评论 0 0
  • 五月已经过了很多天了,除了整天忙工作上的琐碎事,回家还有一堆书摆在那,看着总有种喘不上气的感觉。今天想着还是把四月...
    周Jourway阅读 241评论 0 0