亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algo2-6.c

?? 清華版數據結構代碼實現
?? C
字號:
 /* algo2-6.c 利用單鏈表結構處理教科書圖2.1(學生健康登記表) */
 #include"c1.h"
 #define NAMELEN 8 /* 姓名最大長度 */
 #define CLASSLEN 4 /* 班級名最大長度 */
 struct stud /* 記錄的結構 */
 {
   char name[NAMELEN+1];
   long num;
   char sex;
   int age;
   char Class[CLASSLEN+1];
   int health;
 };
 typedef struct stud ElemType; /* 鏈表結點元素類型為結構體 */
 #include"c2-2.h"
 char sta[3][9]={"健康  ","一般  ","神經衰弱"}; /* 健康狀況(3類) */
 FILE *fp;

 Status InitList(LinkList *L) /* 拷自bo2-2.c */
 { /* 操作結果:構造一個空的線性表L */
   *L=(LinkList)malloc(sizeof(struct LNode)); /* 產生頭結點,并使L指向此頭結點 */
   if(!*L) /* 存儲分配失敗 */
     exit(OVERFLOW);
   (*L)->next=NULL; /* 指針域為空 */
   return OK;
 }

 Status ListTraverse(LinkList L,void(*vi)(ElemType)) /* 拷自bo2-2.c */
 { /* 初始條件:線性表L已存在 */
   /* 操作結果:依次對L的每個數據元素調用函數vi()。一旦vi()失敗,則操作失敗 */
   LinkList p=L->next;
   while(p)
   {
     vi(p->data);
     p=p->next;
   }
   printf("\n");
   return OK;
 }

 void InsertAscend(LinkList L,ElemType e) /* 此函數是由bo2-9.c中的同名函數改寫 */
 { /* 按學號非降序插入 */
   LinkList q=L,p=L->next;
   while(p&&e.num>p->data.num)
   {
     q=p;
     p=p->next;
   }
   q->next=(LinkList)malloc(sizeof(struct LNode)); /* 插在q后 */
   q->next->data=e;
   q->next->next=p;
 }

 void Print(struct stud e)
 { /* 顯示記錄e的內容 */
   printf("%-8s %6ld",e.name,e.num);
   if(e.sex=='m')
     printf(" 男");
   else
     printf(" 女");
   printf("%5d  %-4s",e.age,e.Class);
   printf("%9s\n",sta[e.health]);
 }

 void ReadIn(struct stud *e)
 { /* 由鍵盤輸入結點信息 */
   printf("請輸入姓名(<=%d個字符): ",NAMELEN);
   scanf("%s",e->name);
   printf("請輸入學號: ");
   scanf("%ld",&e->num);
   printf("請輸入性別(m:男 f:女): ");
   scanf("%*c%c",&e->sex);
   printf("請輸入年齡: ");
   scanf("%d",&e->age);
   printf("請輸入班級(<=%d個字符): ",CLASSLEN);
   scanf("%s",e->Class);
   printf("請輸入健康狀況(0:%s 1:%s 2:%s):",sta[0],sta[1],sta[2]);
   scanf("%d",&e->health);
 }

 void WriteToFile(struct stud e)
 { /* 將結點信息寫入fp指定的文件 */
   fwrite(&e,sizeof(struct stud),1,fp);
 }

 Status ReadFromFile(struct stud *e)
 { /* 由fp指定的文件讀取結點信息到e */
   int i;
   i=fread(e,sizeof(struct stud),1,fp);
   if(i==1) /* 讀取文件成功 */
     return OK;
   else
     return ERROR;
 }

 Status FindFromNum(LinkList L,long num,LinkList *p,LinkList *q)
 { /* 查找表中學號為num的結點,如找到,q指向此結點,p指向q的前驅, */
   /* 并返回TRUE;如無此元素,則返回FALSE */
   *p=L;
   while(*p)
   {
     *q=(*p)->next;
     if(*q&&(*q)->data.num>num) /* 因為是按學號非降序排列 */
       break;
     if(*q&&(*q)->data.num==num) /* 找到該學號 */
       return TRUE;
     *p=*q;
   }
   return FALSE;
 }

 Status FindFromName(LinkList L,char name[],LinkList *p,LinkList *q)
 { /* 查找表中姓名為name的結點,如找到,q指向此結點,p指向q的前驅, */
   /* 并返回TRUE;如無此元素,則返回FALSE */
   *p=L;
   while(*p)
   {
     *q=(*p)->next;
     if(*q&&!strcmp((*q)->data.name,name)) /* 找到該姓名 */
       return TRUE;
     *p=*q;
   }
   return FALSE;
 }

 Status DeleteElemNum(LinkList L,long num)
 { /* 刪除表中學號為num的元素,并返回TRUE;如無此元素,則返回FALSE */
   LinkList p,q;
   if(FindFromNum(L,num,&p,&q)) /* 找到此結點,且q指向其,p指向其前驅 */
   {
     p->next=q->next;
     free(q);
     return TRUE;
   }
   return FALSE;
 }

 Status DeleteElemName(LinkList L,char name[])
 { /* 刪除表中姓名為name的元素,并返回TRUE;如無此元素,則返回FALSE */
   LinkList p,q;
   if(FindFromName(L,name,&p,&q)) /* 找到此結點,且q指向其,p指向其前驅 */
   {
     p->next=q->next;
     free(q);
     return TRUE;
   }
   return FALSE;
 }

 void Modify(ElemType *e)
 { /* 修改結點內容 */
   char s[80];
   Print(*e); /* 顯示原內容 */
   printf("請輸入待修改項的內容,不修改的項按回車鍵保持原值:\n");
   printf("請輸入姓名(<=%d個字符): ",NAMELEN);
   gets(s);
   if(strlen(s))
     strcpy(e->name,s);
   printf("請輸入學號: ");
   gets(s);
   if(strlen(s))
     e->num=atol(s);
   printf("請輸入性別(m:男 f:女): ");
   gets(s);
   if(strlen(s))
     e->sex=s[0];
   printf("請輸入年齡: ");
   gets(s);
   if(strlen(s))
     e->age=atoi(s);
   printf("請輸入班級(<=%d個字符): ",CLASSLEN);
   gets(s);
   if(strlen(s))
     strcpy(e->Class,s);
   printf("請輸入健康狀況(0:%s 1:%s 2:%s):",sta[0],sta[1],sta[2]);
   gets(s);
   if(strlen(s))
     e->health=atoi(s); /* 修改完畢 */
 }

 #define N 4 /* student記錄的個數 */
 void main()
 {
   struct stud student[N]={{"王小林",790631,'m',18,"計91",0},
                           {"陳紅",790632,'f',20,"計91",1},
                           {"劉建平",790633,'m',21,"計91",0},
                           {"張立立",790634,'m',17,"計91",2}}; /* 表的初始記錄 */
   int i,j,flag=1;
   long num;
   char filename[13],name[NAMELEN+1];
   ElemType e;
   LinkList T,p,q;
   InitList(&T); /* 初始化鏈表 */
   while(flag)
   {
     printf("1:將結構體數組student中的記錄按學號非降序插入鏈表\n");
     printf("2:將文件中的記錄按學號非降序插入鏈表\n");
     printf("3:鍵盤輸入新記錄,并將其按學號非降序插入鏈表\n");
     printf("4:刪除鏈表中第一個有給定學號的記錄\n");
     printf("5:刪除鏈表中第一個有給定姓名的記錄\n");
     printf("6:修改鏈表中第一個有給定學號的記錄\n");
     printf("7:修改鏈表中第一個有給定姓名的記錄\n");
     printf("8:查找鏈表中第一個有給定學號的記錄\n");
     printf("9:查找鏈表中第一個有給定姓名的記錄\n");
     printf("10:顯示所有記錄 11:將鏈表中的所有記錄存入文件 12:結束\n");
     printf("請選擇操作命令: ");
     scanf("%d",&i);
     switch(i)
     {
       case 1: for(j=0;j<N;j++)
                 InsertAscend(T,student[j]);
               break;
       case 2: printf("請輸入文件名: ");
               scanf("%s",filename);
               if((fp=fopen(filename,"rb"))==NULL)
                 printf("打開文件失敗!\n");
               else
               {
                 while(ReadFromFile(&e))
                   InsertAscend(T,e);
                 fclose(fp);
               }
               break;
       case 3: ReadIn(&e);
               InsertAscend(T,e);
               break;
       case 4: printf("請輸入待刪除記錄的學號: ");
               scanf("%ld",&num);
               if(!DeleteElemNum(T,num))
                 printf("沒有學號為%ld的記錄\n",num);
               break;
       case 5: printf("請輸入待刪除記錄的姓名: ");
               scanf("%s",name);
               if(!DeleteElemName(T,name))
                 printf("沒有姓名為%s的記錄\n",name);
               break;
       case 6: printf("請輸入待修改記錄的學號: ");
               scanf("%ld%*c",&num); /* %*c吃掉回車符 */
               if(!FindFromNum(T,num,&p,&q))
                 printf("沒有學號為%ld的記錄\n",num);
               else
               {
                 Modify(&q->data);
                 if(q->data.num!=num) /* 學號被修改 */
                 {
                   p->next=q->next; /* 把q所指的結點從L中刪除 */
                   InsertAscend(T,q->data); /* 把元素插入L */
                   free(q); /* 刪除q */
                 }
               }
               break;
       case 7: printf("請輸入待修改記錄的姓名: ");
               scanf("%s%*c",name); /* %*c吃掉回車符 */
               if(!FindFromName(T,name,&p,&q))
                 printf("沒有姓名為%s的記錄\n",name);
               else
               {
                 num=q->data.num; /* 學號存入num */
                 Modify(&q->data);
                 if(q->data.num!=num) /* 學號被修改 */
                 {
                   p->next=q->next; /* 把q所指的結點從L中刪除 */
                   InsertAscend(T,q->data); /* 把元素插入L */
                   free(q); /* 刪除q */
                 }
               }
               break;
       case 8: printf("請輸入待查找記錄的學號: ");
               scanf("%ld",&num);
               if(!FindFromNum(T,num,&p,&q))
                 printf("沒有學號為%ld的記錄\n",num);
               else
                 Print(q->data);
               break;
       case 9: printf("請輸入待查找記錄的姓名: ");
               scanf("%s",name);
               if(!FindFromName(T,name,&p,&q))
                 printf("沒有姓名為%s的記錄\n",name);
               else
               Print(q->data);
               break;
       case 10:printf("  姓名    學號 性別 年齡 班級 健康狀況\n");
               ListTraverse(T,Print);
               break;
       case 11:printf("請輸入文件名: ");
               scanf("%s",filename);
               if((fp=fopen(filename,"wb"))==NULL)
                 printf("打開文件失敗!\n");
               else
                 ListTraverse(T,WriteToFile);
               fclose(fp);
               break;
       case 12:flag=0;
     }
   }
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本网站在线观看一区二区三区| 1024国产精品| 精品国产在天天线2019| 欧美日韩亚洲国产综合| 成人午夜又粗又硬又大| 福利一区二区在线观看| 亚洲福利一二三区| 亚洲成人先锋电影| 曰韩精品一区二区| 婷婷六月综合亚洲| 日韩成人免费电影| 国产一区二区不卡在线| 春色校园综合激情亚洲| 午夜精品成人在线视频| 国产一本一道久久香蕉| 成人avav影音| 在线综合+亚洲+欧美中文字幕| 日韩一区二区电影| 一色桃子久久精品亚洲| 免费久久99精品国产| 国产不卡在线视频| 国产精品一区二区三区乱码| 色噜噜狠狠一区二区三区果冻| 欧美人狂配大交3d怪物一区| 久久婷婷一区二区三区| 在线播放/欧美激情| 中文字幕精品在线不卡| 日本欧美一区二区在线观看| 成人中文字幕在线| 欧美不卡一区二区三区四区| 亚洲精品欧美在线| 国产在线乱码一区二区三区| 欧美精品色一区二区三区| 亚洲视频一二三| 国产精品一二三四区| 精品久久99ma| 视频在线观看国产精品| 欧洲一区在线电影| 亚洲嫩草精品久久| 99国产精品一区| 国产精品对白交换视频| 粉嫩蜜臀av国产精品网站| 久久蜜桃av一区精品变态类天堂 | 国产精品色眯眯| 99精品1区2区| 亚洲风情在线资源站| 欧美日韩www| 青青草成人在线观看| 日韩欧美成人一区| 国产精品自拍一区| 亚洲视频一二三区| 一本到不卡精品视频在线观看| 日韩美女久久久| 欧美日韩国产一级二级| 亚洲一区二区在线视频| 欧美图区在线视频| 久久精品噜噜噜成人av农村| 国产清纯白嫩初高生在线观看91| 在线免费观看视频一区| 天天操天天色综合| 欧美色倩网站大全免费| 蜜桃av一区二区三区| 久久久一区二区| 在线视频一区二区三| 日韩成人av影视| 亚洲色欲色欲www在线观看| 欧美日韩在线播放一区| 国产麻豆精品视频| 亚洲与欧洲av电影| 久久美女艺术照精彩视频福利播放| 日本成人在线电影网| 国产精品久久久久影院亚瑟| 在线免费观看日韩欧美| 国产乱淫av一区二区三区| 亚洲一区二区在线视频| 亚洲国产精品高清| 在线成人高清不卡| 不卡av在线免费观看| 国产一区不卡精品| 日本免费新一区视频| 日本视频一区二区| 中文字幕一区av| 中文字幕精品一区二区三区精品| 欧美一区二区三区婷婷月色 | 国产成人精品免费| 九九九精品视频| 日韩av电影免费观看高清完整版 | 国产精品乱码一区二区三区软件| 日韩欧美自拍偷拍| 精品不卡在线视频| 欧美xxxxxxxx| 在线免费亚洲电影| 欧美人成免费网站| 欧美一区二区精品| 日韩精品一区二区三区在线观看| 欧美一级夜夜爽| 亚洲精品一区二区精华| 久久久久久电影| 亚洲色图清纯唯美| 亚洲国产视频a| 亚洲精品中文字幕乱码三区| 亚洲一区二区高清| 精品无码三级在线观看视频| 国产成人啪免费观看软件| 国产91在线观看丝袜| 91首页免费视频| 日韩免费性生活视频播放| 国产欧美一二三区| 午夜视频一区在线观看| 国产福利一区在线| 91成人在线观看喷潮| 日韩精品一区二区三区在线播放 | 欧美日韩国产美| av日韩在线网站| 精品日产卡一卡二卡麻豆| 亚洲国产高清在线| 26uuu另类欧美亚洲曰本| 不卡视频一二三| 激情久久五月天| 国产福利91精品一区| 国产成人福利片| 色婷婷av一区二区三区之一色屋| 日韩一区二区影院| 亚洲一二三四区| 另类小说视频一区二区| 欧美在线免费观看亚洲| 日韩精品自拍偷拍| 亚洲精品中文字幕在线观看| 95精品视频在线| 亚洲成人免费影院| 欧美顶级少妇做爰| 极品尤物av久久免费看| 日韩欧美一区在线| 日韩影院免费视频| 久久久久久久免费视频了| 国产91精品一区二区麻豆亚洲| 欧美高清一级片在线观看| 在线免费观看日本欧美| 首页欧美精品中文字幕| 久久综合狠狠综合久久激情| av在线免费不卡| 亚洲mv在线观看| 国产精品女主播在线观看| 欧美日韩一级视频| 成人av网站在线观看| 亚洲韩国一区二区三区| 久久久久久久久久看片| 欧洲精品中文字幕| 韩国成人福利片在线播放| 一区二区三区精密机械公司| 精品国产电影一区二区| 欧美在线免费播放| 国产成人啪免费观看软件| 日韩电影在线看| 一区二区三区精密机械公司| 欧美国产精品v| 久久色.com| 精品国产免费人成在线观看| 欧美日韩亚洲丝袜制服| 91黄色免费网站| 欧美大胆人体bbbb| 欧美色爱综合网| 欧美在线一二三四区| 不卡视频在线看| 不卡的av网站| 午夜一区二区三区在线观看| 日本一区二区不卡视频| 国产欧美精品在线观看| 日韩一区精品字幕| 亚洲一二三四区| 国产综合久久久久久鬼色| 91麻豆视频网站| 久久久久久久久久久99999| 亚洲综合免费观看高清完整版在线| 亚洲高清免费在线| 96av麻豆蜜桃一区二区| 久久九九久精品国产免费直播| 一区二区在线观看视频| 国产精品一二三在| 日韩视频中午一区| 亚洲午夜激情av| 99精品久久99久久久久| 久久奇米777| 日本不卡123| 欧美精品自拍偷拍| 亚洲香蕉伊在人在线观| 成人精品免费视频| 国产三区在线成人av| 国内精品久久久久影院一蜜桃| 日韩一级大片在线| 免费一级欧美片在线观看| 欧美日韩国产综合草草| 日韩在线a电影| 日韩片之四级片| 久久精工是国产品牌吗| 精品日韩欧美一区二区| 国产风韵犹存在线视精品| 日本一区二区三区免费乱视频| 成人永久免费视频| 亚洲日本va午夜在线电影|