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

📄 002.c

📁 用C语言实现数据结构的几种常用结构
💻 C
字号:
#include "stdio.h"
#include "conio.h"
#define NUM  500

struct nodetype
{int info,next;
};
struct nodetype node[NUM];
int p;

int creatnode()          /*生成链表*/
{int i=1;
 int b,n;
 printf("please input the node,end by 999.\n");  
  do
  {scanf("%d",&node[i].info);
     node[i].next=i+1;
     i++;
  }while(node[i-1].info!=999);
  n=i-2;
  node[i-2].next=-1;
  i=1;
  printf("the list is:");
  do{printf("%d\t",node[i].info);
     i=node[i].next;
     }
  while(i!=-1);
  p=1;
 return(n);
}


insert2(int n)      /*插入数据*/
{int c,d;
 int i;
 printf("n=%d\n",n);
 printf("input the location and data you want to insert:\n");
 do
  {printf("\nlocation:");
   scanf("%d",&c);
   printf("\ndata:");
   scanf("%d",&d);
    if((c<1)||(c>n+1))
    printf("ERROR!input again:\n");
  }while((c<1)||(c>n+1));
  node[n+1].info=d;
  i=p;
  if(c==1)
    {node[n+1].next=p;
     p=n+1;
     printf("p=%d",p);
     }
     else 
  {do{i=node[i].next;
     }
   while(i!=c-1);

   if(i!=n)
   {node[n+1].next=node[i].next;
    node[i].next=n+1;
    }

   else
   {node[i].next=n+1;
    node[n+1].next=-1;
    }
   }
   i=p;
   printf("the list is:");
   do{printf("%d\t",node[i].info);
     i=node[i].next;
     }
   while(i!=-1);
   n=n+1;
 return(n);
}

void travel()             /*遍历链表*/
{int i;
 i=p;
  printf("the list is:");
  do{printf("%d\t",node[i].info);
     i=node[i].next;
     }
  while(i!=-1);
}

void delect()           /*删除数据*/
{int x,i,q;
 int s;
 printf("\nwhich data you want to delect:\n");
 scanf("%d",&x);
 i=p;
 while((node[i].info!=x)&&(node[i].next!=-1))
      i=node[i].next;
 if(node[i].info==x)
 {q=1;
  while(node[q].next!=i)
    q=node[q].next;
  if(node[i].next!=-1)
    node[q].next=node[i].next;
  else
    node[q].next=-1;
  i=p;
  printf("the list is:");
  do{printf("%d\t",node[i].info);
     i=node[i].next;
     }
  while(i!=-1);
  }
 else
   printf("there is no this data\n");
 return;
}

show1()
{ int a;
 printf("\n===============================================================\n");
 printf("\t*1 insert an element.\n\t*2 delect an element.\n\t*3 travel the link.\n\t*4 exit.\n");
 printf("\n===============================================================\n");
 printf("choice is :");
 do
 {scanf("%d",&a);
  if((a<1)||(a>4))
   printf("ERROR!please input again:\n");
 }while((a<1)||(a>4));
 return(a);
}


str()
{int a;
 int n;
 n=creatnode();
 do
 {a=show1();
  switch(a)
  {case 1:{n=insert2(n);
           break;
           }

   case 2:{delect();
           break;
           }

   case 3:{travel();
           break;
           }

   case 4:break;
  }
 }while(a!=4);
}

⌨️ 快捷键说明

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