链表

C语言实现创建单链表

 

/*链表基本操作:1创建链表2插入节点3删除节点*/
#include<bits/stdc++.h>
using namespace std;
struct node
{
    int data;
    struct node *next;
} ;
int main()
{
    int i,a,n;
    struct node *head,*p,*q,*t;
    head=NULL;
    printf("请输入要创建的链表长度!\n") ;
    scanf("%d",&n);
    /*创建n个结点长度的单链表*/
    for(i=0;i<n;i++)
    {
        scanf("%d",&a);
        //p=(struct node *)malloc(sizeof(struct node));//c创建空间  
        p=new node;//c++创建空间 
        p->data=a;
        p->next=NULL;
        if(head == NULL)
        head=p;
        else
        q->next=p;
        q=p;
    }
    /*插入结点*/ 
    printf("请输入要插入的数!\n") ;
    scanf("%d",&a);
    t=head;
    while(t!=NULL)
    {
        if(t->next->data>a)
        {
            //p=(struct node *)malloc(sizeof(struct node));//c创建空间  
            p=new node;//c++创建空间 
            p->data=a;
            p->next=t->next;
            t->next=p;
            break;
        }
        t=t->next;
    }
    /*删除某个节点*/ 
    printf("请输入要删除的数!\n") ;
    scanf("%d",&a);
    t=q=head;
    while(t->data!=a)
    {
        q=t;
        t=t->next;
    }
    if(t==NULL)printf("不存在!\n") ;
    else 
    {
        q->next=t->next;
    }
    /*打印结果*/ 
    t=head;
    while(t!=NULL)
    {
        printf("%d ",t->data);
        t=t->next;
    }
    getchar();
    getchar();
    return 0;
}

 

posted @ 2018-09-15 15:51  LizLiz  阅读(112)  评论(0)    收藏  举报