删除顺序表中所有的的重复数据
生活随笔
收集整理的這篇文章主要介紹了
删除顺序表中所有的的重复数据
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
順序表的結(jié)果設(shè)計如下所示
順序表的結(jié)構(gòu)體設(shè)計和頭節(jié)點的結(jié)構(gòu)體設(shè)計如下鏈接:
順序表的插入_神廚小福貴!的博客-CSDN博客按位置插入我們知道 順序表的特點就是 無論在邏輯上還是地址上都是連續(xù)的先看順序表的結(jié)構(gòu)體:#define MAXSIZE 10 //順序表一般固定大小struct SeqList{ int data[MAXSIZE]; int capacity; //順序表容量大小 int cursize; //順序表中有效數(shù)據(jù)節(jié)點個數(shù)}SeqList , *PSeqList; //結(jié)構(gòu)體指針和結(jié)構(gòu)體別名再來看結(jié)構(gòu)體的數(shù)據(jù)按位置插入:bool In...https://blog.csdn.net/qq_45829112/article/details/120863218
來看這個思路分析:
?來看代碼實現(xiàn):
void Reamove_all(PSeqList plist, int val) //val就是要再順序表中刪除的數(shù)據(jù)
{assert(plist != NULL);int j = 0;for (int i = 1; i < plist->cursize; i++){if (plist->data[i] != val){j++;plist->data[j] = plist->data[i];}}plist->cursize = j + 1;
}
對于上述代碼? 如果順序表首個數(shù)據(jù)是 12? 呢? 這樣的話按照上面的的代碼? 第一個數(shù)據(jù)就會被跳過? 導致最后結(jié)果達不到預期效果
對此? 代碼該怎么改呢?
方法一:
?
代碼的話? 改一下i? j的初值就好:
void Reamove_all(PSeqList plist, int val) //val就是要再順序表中刪除的數(shù)據(jù)
{assert(plist != NULL);int j = -1;for (int i = 0; i < plist->cursize; i++){if (plist->data[i] != val){j++;plist->data[j] = plist->data[i];}}plist->cursize = j + 1;
}
方法二:
?代碼實現(xiàn):
void Reamove_all(PSeqList plist, int val) //val就是要再順序表中刪除的數(shù)據(jù)
{assert(plist != NULL);int j = 0;for (int i = 0; i < plist->cursize; i++){if (plist->data[i] != val){plist->data[j] = plist->data[i];j++;}}plist->cursize = j;
}
“讀書,買花,長大”
總結(jié)
以上是生活随笔為你收集整理的删除顺序表中所有的的重复数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 瑞谷图是谁画的啊?
- 下一篇: Linux终端C语言实现图片拷贝