⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 单连表.txt

📁 输入一系列递减顺序的整数(100,50,40,30……)
💻 TXT
字号:
  输入一系列递减顺序的整数(100,50,40,30……),以0标志结束,将这些数作为data域逆序建立一个单链表;从键盘输入一个整数X,将X插入到此单链表中并保持单链表data域的值递增关系,输出此时单链表各结点data域的值;从键盘输入一个整数Y,若Y值在单链表中存在,则删除data域的值为Y的结点(注单链表中没有data域值相同的结点),并输出此时单链表各结点data域的值。


#define NULL 0
#include <stdio.h>
#include <malloc.h>
typedef struct LNode
 { int data;
   struct LNode *next;
 }LNode,*LinkList;
 LinkList create( )
  { int x;
    LinkList L, p;
    L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    printf("\ninput a integer:");
    scanf("%d",&x);
    while(x!=0)
     { p=(LinkList)malloc(sizeof(LNode));
       p->data=x;
       p->next=L->next;
       L->next=p;
       printf("input a integer:");
       scanf("%d",&x);
     }
     return(L);
 }
LinkList insert_l(LinkList L,int x)
 { LinkList p, q,s;
   q=L; p=q->next;
   while(p && p->data<x)
      {q=p; p=p->next;}
   s=(LinkList)malloc(sizeof(LNode));
   s->data=x; s->next=p; q->next=s;
   return (L);
 }
 void print(LinkList L)
 { LinkList p;
   p=L->next;
   while(p)
     { printf("%d   ",p->data);
       p=p->next;
     }
 }
 LinkList delete_l(LinkList L, int y)
  { LinkList p,q;
    q=L;p=q->next;
    while(p && p->data!=y)
     {q=p;p=p->next; }
    if(p) { q->next=p->next; free(p);}
    return(L);
  }
 main()
 { LinkList L;
   int x,y;
   L=create();
   printf("input a integer x=?");
   scanf("%d",&x);
   L=insert_l(L,x);
   printf(“insert result:”);
   print(L);
   printf("\ninput a integer y=?");
   scanf("%d",&y);
   L=delete_l(L,y);
   printf(“delete result:);
   print(L);
 } 

运行情况:input a integer:100
          input a integer:50
input a integer:40
input a integer:30
input a integer:0
input a integer x=?35
insert result:30   35   40   50   100
input a integer y=?50
delete result:30   35   40  100

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -