久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1180|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:647532 發(fā)表于 2023-4-21 14:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. // 線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)
  4. #define ListSize 100
  5. typedef char DataType;
  6. typedef struct{
  7.         DataType data[ListSize];
  8.         int length;
  9. }SeqList;

  10. SeqList mylist;//global value

  11. //在指定位置插入元素
  12. void InsertList(SeqList *L,int pos,DataType val)
  13. {
  14.         int i,q=0;
  15.         if(pos<1 || pos>L->length+1) //   假如順序表為 1,2,3,4,5,可以插入的位置是1,2,3,4,5,6
  16.         {
  17.                 printf("position error\n");
  18.                 return;
  19.         }
  20.         if(L->length>=ListSize){   //當(dāng)length=ListSize時(shí),表示順序表已滿(mǎn)
  21.                 printf("overflow\n");
  22.                 return;
  23.         }
  24.         
  25.         for( i=L->length ;i>=pos;i--){  //當(dāng)i的位置為1——length+1時(shí)需要移動(dòng)length-i+1
  26.                 L->data[i]=L->data[i-1];
  27.                 q++;
  28.         }
  29.         L->data[pos-1]=val;
  30.         printf("循環(huán)體執(zhí)行了%d次,理論上計(jì)算值為n-i+1次%d\n",q,L->length-pos+1);
  31.         L->length ++;
  32.         printf("在順序表中插入新的元素%c在表中%d的位置",val,pos);
  33.         
  34. }
  35. DataType  DeleteList(SeqList *L,int pos)//在順序表L中第i個(gè)位置之前插入一個(gè)新的元素下
  36. {
  37.         int i,q=0;  
  38.         DataType x;
  39.         if(pos<1 || pos>L->length)
  40.         {
  41.                 printf("position error\n");
  42.                 exit (0); //程序非正常退出,并給一個(gè)統(tǒng)一的返回值0,在stdlib.h中有定義
  43.         }
  44.         x=L->data[pos-1];

  45. /*        for(i=pos-1;i+1<L->length ;i++){
  46.                 q++;
  47.                 L->data[i]=L->data[i+1];
  48.                
  49.         }
  50. */        
  51.         
  52.         for(i=pos;i<L->length;i++) {
  53.                 q++;
  54.                 L->data[i-1]=L->data[i];
  55.         }
  56.         
  57.         L->length --;
  58.         printf("表中位置%d的元素%c已經(jīng)被刪除了\n",pos,x);
  59.         printf("循環(huán)體執(zhí)行了%d次,理論上計(jì)算值為n-i次%d\n",q,L->length+1-pos);
  60.         return x;
  61. }

  62. void PrintList(SeqList *L)   //打印輸出順序表
  63. {
  64.         int i;
  65.         for(i=0;i<L->length;i++){
  66.                 printf("%c,",L->data[i]);
  67.         }
  68.         printf("\n");
  69. }
  70. //創(chuàng)建一個(gè)順序表
  71. CreateList(SeqList *L)
  72. {
  73.         int i=0;
  74.         L->length=0;
  75.         char ch;
  76.         ch=getchar();
  77.         printf("創(chuàng)建的順序表如下:");
  78.                 while(ch!='\n'){
  79.                         L->data[i]=ch;
  80.                         
  81.                         L->length++;
  82.                         
  83.                         ch=getchar();
  84.                         printf("%c,",L->data[i]);
  85.                         i++;
  86.                 }
  87.                 printf("表長(zhǎng)length=n=%d\n",L->length);
  88. }
  89. //順序表逆置
  90. void Converts(SeqList *L){
  91.         int i;
  92.         DataType temp;
  93.         for(i=0;i<L->length/2;i++)
  94.         {
  95.                 temp=L->data[i];
  96.                 L->data[i]=L->data[L->length-1-i];
  97.                 L->data[L->length-1-i]=temp;
  98.                
  99.         }
  100.         return;
  101. }
  102. void MaxMin(SeqList *L,DataType*max,DataType *min,int *k,int *j){
  103.         int i;
  104.         *max=L->data[0];*min=L->data[0];
  105.         *k=*j=0;
  106.         for(i=1;i<L->length;i++) {
  107.                 if(L->data[i]>*max){
  108.                         *max=L->data[i];*k=i;
  109.                 }
  110.                         
  111.                 else if (L->data[i]<*min){
  112.                         *min=L->data[i];*j=i;
  113.                 }
  114.                         
  115.         }
  116. }

  117. int main()
  118. {
  119.         
  120.         int max=0,min=0,k=0,j=0;
  121.         
  122.         
  123.         CreateList(&mylist);
  124.         InsertList(&mylist,9,'A');
  125.         PrintList(&mylist);
  126.         DeleteList(&mylist,9);
  127.         PrintList(&mylist);
  128.         Converts(&mylist);
  129.         PrintList(&mylist);
  130.         MaxMin(&mylist,&max,&min,&k,&j);
  131.         printf("max=%c,min=%c,k=%d,j=%d",max,min,k,j);
  132.         return 0;
  133. }

復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 看一级毛片视频 | 欧美精品网站 | 草b视频 | 不卡的av在线 | 麻豆久久久久久久久久 | 欧美a级成人淫片免费看 | 国产在线资源 | 一区二区三区免费网站 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕亚洲一区二区三区 | 国产一区二区久久 | av色站 | 久久久精品一区二区 | 亚洲九九 | 日韩精品一区二区三区中文在线 | 精品久久不卡 | av免费入口 | 欧美日韩免费在线 | 91视频网址| 国产免费拔擦拔擦8x高清 | 欧美激情视频一区二区三区在线播放 | 一区二区三区视频免费看 | 日韩久久精品 | 亚洲欧美在线一区 | 欧美另类视频 | 日韩成人中文字幕 | 亚洲中午字幕 | 巨大黑人极品videos精品 | 亚洲444eee在线观看 | 免费午夜电影 | 91资源在线观看 | 毛片视频观看 | 2一3sex性hd | 91久久久久久久久久久久久 | 欧美全黄 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 永久看片 | 欧美在线a | 国产探花在线精品一区二区 | 色99视频 | 国产午夜精品久久久 |