刪除線性表的代碼java 線性表刪除操作數(shù)據(jù)結(jié)構(gòu)的算法實(shí)現(xiàn)
java刪除線性表最后一個(gè)元素
ListInteger list = new ArrayListInteger();
list.add(1);
list.add(2);
list.add(3);
list.remove(list.size() - 1);
java問(wèn)題,在線性表中刪除一個(gè)結(jié)點(diǎn),尋求解決方案!
目測(cè)之下
應(yīng)該是對(duì)的
就是索引i一般是從0開始的
看你的程序你的i應(yīng)該是從1開始的吧?不過(guò)這都不影響執(zhí)行結(jié)果。還有就是:ArrayList集合適用于遍歷的操作,
如果你的操作中
增刪比較多的話
建議使用LinkedList,效率會(huì)更高些。
線性表的創(chuàng)建,刪除插入等操作
線性表的操作類似于數(shù)組,都是連續(xù)存儲(chǔ),所以相關(guān)的操作也是類似。
插入:在第t個(gè)位置插入元素,需要將從第t個(gè)位置到第n個(gè)位置向后移動(dòng)。
刪除:刪除第t個(gè)元素,從t+1位置元素往前移動(dòng)
插入和刪除都需要將元素移動(dòng),順序存儲(chǔ)結(jié)構(gòu)線性表所需要的平均時(shí)間復(fù)雜度為O(n)。
下面是根據(jù)數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的代碼;
#include
#include
#define TRUE 1;
#define FALSE 0;
#define OK 1;
#define ERROR 0;
#define OVERFLOW -2;
typedef int Status;
typedef int ElemType;
typedef struct {
ElemType *elem;//線性表的基地址
int Length;//長(zhǎng)度
int Listsize;//當(dāng)前分配的存儲(chǔ)容量
}SqList;
Status InitList(SqList L)//初始化線性表
{
L.elem = (ElemType*)malloc(100 * sizeof(ElemType));//分配內(nèi)存
if (!L.elem) exit(-2);
L.Length = 0;
L.Listsize = 100;
return OK;
}
Status ListInsert(SqList L,int i,ElemType e)//在順序表第i個(gè)位置之前插入新的元素e
{
if (i 1 || iL.Length + 1) return ERROR;//i值不合法
if (L.Length = L.Listsize)//存儲(chǔ)空間已滿
{
ElemType *newbase = (ElemType*)realloc(L.elem, (L.Listsize + 10) * sizeof(ElemType));
if (!newbase)
{
exit(-2);
}
L.elem = newbase;
L.Listsize += 10;
}
ElemType *q = (L.elem[i - 1]); //將L表中第i個(gè)元素的地址信息傳遞給指針q
for (ElemType *p = (L.elem[L.Length - 1]); p = q; --p)//p為末尾元素的地址
{
*(p + 1) = *p;
}
*q = e;
++L.Length;
return OK;
}
Status OutputList(SqList L)//輸出線性表中的元素
{
int i = 0;
for (i ; i L.Length ; i++)
{
printf("%d ", L.elem[i]);
}
return OK;
}
Status ListLength(SqList L)//返回線性表的表長(zhǎng)
{
return L.Length;
}
Status GetElem(SqList L, int i, ElemType e)//用e返回第i個(gè)元素的值
{
if (iL.Length) return ERROR;
e = L.elem[i-1];
return OK;
}
Status ClearList(SqList L)//清除線性表的數(shù)據(jù)
{
L.Length = 0;
return OK;
}
Status DeleteList(SqList L,int i,ElemType e)//刪除第i個(gè)元素,并用e返回其值
{
if (iL.Length) return ERROR;
e = L.elem[i - 1];//通過(guò)下標(biāo)找到第i個(gè)元素的值
ElemType *p = (L.elem[i - 1]);
ElemType *q = L.elem + L.Length - 1;
for (p; p
上一篇:java項(xiàng)目完整代碼 java項(xiàng)目 代碼結(jié)構(gòu)層次
欄 目:Java編程
下一篇:沒(méi)有了
本文標(biāo)題:刪除線性表的代碼java 線性表刪除操作數(shù)據(jù)結(jié)構(gòu)的算法實(shí)現(xiàn)
本文地址:http://mengdiqiu.com.cn/a1/Javabiancheng/17266.html
您可能感興趣的文章
- 04-04線性表java代碼 線性表基本操作代碼
- 04-03java成績(jī)分代碼 java成績(jī)表
- 01-10Java編程刪除鏈表中重復(fù)的節(jié)點(diǎn)問(wèn)題解決思路及源碼分享
- 01-10Java編程實(shí)現(xiàn)遞增排序鏈表的合并
- 01-10Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例
- 01-10Java編程實(shí)現(xiàn)逆波蘭表達(dá)式代碼示例
- 01-10Java編程獲取文件列表及子文件目錄的方法(非遞歸)
- 01-10Java編程實(shí)現(xiàn)鄰接矩陣表示稠密圖代碼示例
- 01-10Java編程迭代地刪除文件夾及其下的所有文件實(shí)例


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-05刪除線性表的代碼java 線性表刪除操作
- 04-05java項(xiàng)目完整代碼 java項(xiàng)目 代碼結(jié)構(gòu)層
- 04-05Java七夕代碼照片墻 java編程代碼圖片
- 04-05java拷貝音樂(lè)源代碼 怎么拷貝java源文
- 04-05java連接讀卡器代碼 java連接kafka
- 04-05java雨量監(jiān)測(cè)系統(tǒng)代碼 雨量監(jiān)測(cè)數(shù)據(jù)管
- 04-05安卓布局java代碼 android+java
- 04-05java井字棋代碼論文 用java寫井字游戲
- 04-04java分析源代碼變量 java程序的源代碼
- 04-04java代碼工程 一段java代碼的詳細(xì)解說(shuō)
隨機(jī)閱讀
- 08-05DEDECMS首頁(yè)調(diào)用會(huì)員有無(wú)新消息的方法
- 01-10C# FileStream復(fù)制大文件
- 01-10VC中實(shí)現(xiàn)文字豎排的簡(jiǎn)單方法(推薦)
- 01-10C++中vector容器的常用操作方法實(shí)例總
- 01-10c++輸出斐波那契數(shù)列示例分享
- 01-10靈活實(shí)用VBS入門教程應(yīng)用篇
- 01-11.Net微信網(wǎng)頁(yè)開發(fā)解決用戶在不同公眾
- 01-10sql server 2008 數(shù)據(jù)庫(kù)管理系統(tǒng)使用SQL語(yǔ)
- 08-05dede 調(diào)用自定義字段方法
- 01-11Dreamweaver怎么修改文檔說(shuō)明類型?