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

📄 dlb.c

📁 对单链表进行元素的插入和删除操作。要求:1)用头插法或尾插法(头插法指新元素总是从头部插入;尾插法指新元素总是从尾部插入)建立一个单链表(带头结点)
💻 C
字号:
#include <stdio.h>
typedef struct LNODE{ int data;
                        struct LNODE *next;}LONDE,Linklist;
Linklist creat(Linklist L)  /*单链表建立函数 */
{int node; Linklist p;
 L=(Linklist)malloc(sizeof(LNODE)); L->data=-1; L->next=NULL;
 printf("\n please input the node(end with 0):\n");/*请求输入顺序表中各个元素*/
 scanf("%d",&node);
  while(node!=0)
  {p=(Linklist)malloc(sizeof(LNODE));  p->data=node;
   p->next=L->next; L->next=p;
   printf("\n please input the node(end with 0):\n"); scanf("%d",&node);}
   return L;}
Linklist insert(Linklist L,int i,int x)  /*单链表插入函数*/
{int j;Linklist p,s;
 p=la; j=0;
 while (p!=NULL&&j<i-1)  {p=p->next;  ++j;}
 if (p==NULL||j>i-1)
   printf("\n ERROR position!\n");
   else { s=(Linklist)malloc(sizeof(LNODE));
	      s->data=x;  s->next=p->next;p->next=s;}
return L;}
Linklist delete(Linklist L,int i)  /*单链表删除函数*/
{int j,x; Linklist p,q;
p=la; j=0;
while(p->next!=NULL&&j<i-1)
   {p=p->next; ++j;}
if(p->next==NULL||j>i-1)
   printf("\n ERROE position!\n");
   else { q=p->next; p->next=q->next; 
x=q->data; printf("\nthe delete data is:%d\n",x); free(q);}
return L;}
void display(Linklist L)  /*单链表元素输出(遍历)函数*/
{Linklist p;
  p=la->next;
  while(p!=NULL)
    {printf("%d  ",p->data); p=p->next;}
printf("\n");}
main()/*主函数*/
 { Linklist L; int i,x;
   L=creat(L);/*调用单链表建立函数*/
  display(L); /*调用单链表元素输出(遍历)函数*/
printf("\n please input the position  you want to insert:");/*请求输入插入操作位置*/
  scanf("%d",&i);
  printf("\n please input the node you want to insert:");/*请求输入需要插入的元素*/
  scanf("%d",&x);
  L=insert(L,i,x);/*调用单链表插入函数*/
  display(L);/*调用单链表元素输出(遍历)函数*/
  printf("\n please input the node position you want to delete:"); /*请求输入删除操作位置*/
  scanf("%d",&i);
  L=delete(L,i); /*调用单链表删除函数*/
  display(L); /*调用单链表元素输出(遍历)函数*/
  }

⌨️ 快捷键说明

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