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

📄 lianbiao4.c

📁 链表的测试 使用方式 添加,删除方法的实现
💻 C
字号:
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#define null NULL
struct list
{
  int data;
  struct list *next,*front;
};
typedef struct list link;
typedef link *links;
links a,n,f;
void start()
{
  a->front=null;
  a->data=null;
  a->next=null;
  n=a;
  f=a;
}
void add(int i)
{

  n->next=malloc(sizeof(link));
  n=n->next;
  n->data=i;
  f->next=n;
  n->front=f;
  n->next=null;
  f=n;
}
void removes(int i)
{
  int k=0;
  links e;
  e=a;
  while(e->next!=null)
  {
    if(e->data==i)
    {
      links p;
      p=e->front;
      p->next=e->next;
      free(e);
      p->next->front=p;
      k=1;
    }
  }
  if(!k)printf("Can't find %d ",i);
}



void make_menu(char *name,char *charp[],int x,int y,int num,int color1,int color2)
{               /* 菜单名字,菜单数组,坐标X,坐标Y,菜单个数,字体颜色,字体背景颜色*/
  static int n=0;
  int i;
  char c;
  char **charpp;
  charpp=charp;

  while(1)
  {
    textbackground(LIGHTCYAN);
    textcolor(MAGENTA);
    clrscr();
    gotoxy(x,y);
    cputs(name);
    for(i=0;i<=num;i++)
    {
      if(n==i)
      {
        textbackground(color2);
        textcolor(color1);
      }
      else
      {
      textbackground(color1);
      textcolor(color2);
      }
      gotoxy(x,y+i+1);
      cputs(*(charpp+i));
    }
    textcolor(BLUE);
    textbackground(MAGENTA);
    gotoxy(x+3,y+num+2);
    cputs("Input number:");
    if((c=getch())==0)
    {
      switch((c=getch()))
      {
        case 75: if(n==0) n=num-1;else n--;
        break;
        case 77: if(n==num-1) n=0;else n++;
        break;
        case 80: if(n==num-1) n=0;else n++;
        break;
        case 72: if(n==0) n=num-1;else n--;
        break;
      }
    }
    else if(c==9){n++;if(n>num-1)n=0;}
    else
    {
      if(c==13)
      {
        switch(n+1)
        {                                     /*回车处理*/
          case 1:    add(geti());
          break;
          case 2:    removes(geti());
          break;
          case 3:    exit(0);
          break;
          case 4:
          break;
          case 5:
          break;
        }
      }
      else
      {
        switch(c-48)
        {                                   /*直接数字处理*/
          case 1:     add(geti());
          break;
          case 2:     removes(geti());
          break;
          case 3:     exit(0);
          break;
          case 4:
          break;
          case 5:
          break;
        }
      }
    }
  }
}
int geti()
{
  int i;
  clrscr();
  gotoxy(20,7);
  printf("please input number:");
  scanf("%d",&i);
  return i;

}
main()
{

  char *name="     MENU";
  char *menu[]={"1.Add      ","2.Remove   ","3.View     ","4.Exit     "};
  start();
  make_menu(name,menu,20,7,4,3,9);
  getch();
}

⌨️ 快捷键说明

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