zoukankan      html  css  js  c++  java
  • 单向链表的建立,插入,删除(复习一下)

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    using namespace std;
    typedef int datetype;
    typedef struct  node
    {
        datetype date;
        struct node* next;
    }listnode,*linklist;
    linklist creatlist(int num)//创建链表
    {
        int i;
        linklist tail=NULL,temp=NULL,head=NULL;
        for(i=0;i<num;i++)
        {
            if(head==NULL)
            {
                head=(listnode*)malloc(sizeof(listnode));
                head->next=NULL;
                cin>>head->date;
                tail=head;
            }
            else
            {
                temp=(listnode*)malloc(sizeof(listnode));
                cin>>temp->date;
                tail->next=temp;
                tail=temp;
                tail->next=NULL;
            }
        }
        return head;
    }
    linklist insert(linklist head,int i,int num)
    {
        int j=0;
        linklist p=head,temp=NULL,node=NULL;
        temp=(linklist)malloc(sizeof(listnode));
        if(i==0)
        {
            temp->date=num;
            temp->next=head;
            return temp;
        }
        for(j=0;j<i;j++)
        {
            node=p;            //找到前驱指针和后继指针
            p=p->next;
        }
        temp->date=num;
        node->next=temp;
        temp->next=p;
        return head;
    }
    linklist deletelist(linklist head,int i)
    {
        int j=1;
        linklist p=head,temp,node;//找到前驱指针和后继指针
        if(i==1)
        {
            head=head->next;
            return head;    
        }
        for(j=1;j!=i;j++)
        {
            node=p;
            p=p->next;
        }
        node->next=p->next;
        return head;
    }
    void outputlist(linklist head)
    {
        linklist p=head;
        while(p!=NULL)
        { 
            cout<<p->date<<' ';
            p=p->next;
        }
    }
    int main()
    {
        linklist head;
        int num,i;
        cin>>num;
        head=creatlist(num);
        outputlist(head);
        cin>>i>>num;
        head=insert(head,i,num);
        outputlist(head);
        cin>>i;
        deletelist(head,i);
        outputlist(head);    
    }
  • 相关阅读:
    用vbox搭建Linux服务器
    mysql数据库两表关联查询统计同一字段不同值的个数
    2019-06-16 Java学习日记之XML&tomcat
    2019-06-15 Java学习日记之mysql多表查询
    2019-06-14 Java学习日记之SQL
    2019-06-13 Java学习日记之MySql
    XML & Tomcat
    数据库的CRUD操作
    PrepareStatement
    Dao模式(data Access Object 数据访问对象)
  • 原文地址:https://www.cnblogs.com/a1225234/p/4612679.html
Copyright © 2011-2022 走看看