zoukankan      html  css  js  c++  java
  • SWUST OJ(953)

    单链表的删除操作的实现

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 typedef struct LinkNode //单链表节点结构的定义
     5 {
     6     int data;
     7     struct LinkNode *next;
     8 }LinkNode;
     9 
    10 void InitLinkList(LinkNode * &L)
    11 {
    12     /*单链表的初始化*/
    13     L = (LinkNode*)malloc(sizeof(LinkNode));
    14     L->next = NULL;
    15 }
    16 
    17 void CreateLinkList(LinkNode *&L, int n,int *num)
    18 {
    19     /*采用尾插法创建单链表*/
    20     LinkNode* r = L;
    21     for (int i = 0; i < n; ++i)
    22     {
    23         LinkNode * p =(LinkNode*)malloc(sizeof(LinkNode));
    24         p->data = num[i];
    25         p->next = r->next;
    26         r->next = p;
    27         r = p;
    28     }
    29 }
    30 
    31 void DisList(LinkNode *L)
    32 {
    33     /*单链表的输出*/
    34     LinkNode *l = L->next;
    35     while(l)
    36     {
    37         printf("%d ",l->data);
    38         l = l->next;
    39     }
    40 }
    41 
    42 void DelLinkList(LinkNode *&L, int p)
    43 {
    44     /*删除指定参数所代表的节点*/
    45     LinkNode *a = L;
    46     LinkNode *b;
    47     for(int i=0;i<p-2;i++)
    48     {
    49         a = a->next;
    50     }
    51     b = a->next;
    52     a->next = a->next->next;
    53     free(b);
    54 }
    55 
    56 int main(int argc, char const *argv[])
    57 {
    58     /*int n = 5;
    59     int num[]={1,2,3,4,5};*/
    60     int n, p;
    61     int *num;
    62 
    63     scanf("%d",&n);
    64     num =(int*)malloc(n*sizeof(int));
    65 
    66     for (int i = 0; i < n; ++i)
    67     {
    68         scanf("%d",&num[i]);
    69     }
    70 
    71     scanf("%d",&p);
    72 
    73     /*判断输入值是否合法*/
    74     if(p > n || p < 2)
    75     {
    76         printf("error!");
    77         return 0;
    78     }
    79 
    80     LinkNode *L;
    81     InitLinkList(L);
    82     CreateLinkList(L,n,num);
    83     DelLinkList(L,p);
    84     DisList(L);
    85     return 0;
    86 }
  • 相关阅读:
    浏览器渲染HTML页面步骤
    JavaScript中必记英语单词及含义
    JavaScript中的线程与进程
    成绩转换 题解
    计算球的体积 题解 #define
    计算两点间的距离 题解
    ASCII码排序 题解
    python学习——协程
    python学习——进程
    python学习——锁
  • 原文地址:https://www.cnblogs.com/Ghost4C-QH/p/10491678.html
Copyright © 2011-2022 走看看