基本操作包括單鏈表的增,刪,查,改以及單鏈表資料的列印。
#include#define ok 1;
#define error 0;
bool exist = false;
typedef int elemtype;
typedef struct lnodelnode,*linklist;
//初始化單鏈表
int initlist(linklist &l)
//前插法實現單鏈表
void insertelemheader(linklist &l,int length)
if(!length)
}//後插法實現單鏈表
void insertelemtail(linklist &l,int length)
if(!length)
}//在單鏈表指定位置增加乙個數
int addelem(linklist &l,int i,elemtype e)
if(!p||(j > i-1))
s = new lnode;
s->data = e;
s->next = p->next;
p->next = s;
return ok;
}//從單鏈表中刪除指定位置的數
int deleteelem(linklist &l,int i)
if(!p->next && (j > i-1))
int result = p->next->data;
d = p->next;
p->next = d->next;
delete d;
return result;
}//從單鏈表中刪除指定值的數!
int deleteelem2(linklist &l,elemtype e)
if(p->next->next && p->next->data == e)
if(!p->next->next && p->next->data == e)
}else if(p->data == e)
} return e;
}//從單鏈表中找出某乙個指定的數
lnode *findelem(linklist &l,elemtype e) else }
if(!exist)
return p;
} //將單鏈表中的結點資料替換
int modifyelem(linklist &l,elemtype e,elemtype e1)else }
if(!exist)
return ok;
}int main()else
break;
case 2:
printf("使用前插法將數插入單鏈表中!\n");
printf("輸入數的個數:");
scanf("%d",&num);
insertelemheader(l,num);
break;
case 3:
printf("使用後插法將數插入單鏈表中!\n");
printf("輸入數的個數:");
scanf("%d",&num);
insertelemtail(l,num);
break;
case 4:
printf("在單鏈表指定位置增加乙個數!\n");
printf("插入的位置為:");
scanf("%d",&location);
printf("插入的資料為:");
scanf("%d",&e);
addelem(l,location,e);
break;
case 5:
printf("從單鏈表中刪除指定位置的數!\n");
printf("刪除的指定位置為:");
scanf("%d",&location);
printf("被刪除指定位置的數為:%d\n",deleteelem(l,location));
break;
case 6:
printf("從單鏈表中刪除指定值的數!\n");
printf("刪除的指定值為:");
scanf("%d",&e);
printf("被刪除指定值的數為:%d\n",deleteelem2(l,e));
break;
case 7:
printf("從單鏈表中找出某乙個指定的數!\n");
printf("查詢到數為:");
scanf("%d",&e);
if(findelem(l,e))else
break;
case 8:
printf("將單鏈表中的結點資料替換!\n");
printf("被替換的數為:");
scanf("%d",&e);
printf("替換的數為:");
scanf("%d",&e1);
modifyelem(l,e,e1);
break;
case 9:
printf("目前的單鏈表中的資料分別是:\n");
p = l->next; //l為頭結點
while(p)
if(! l->next)
printf("\n");
break;
} }return ok;
}
單鏈表其餘各種複雜操作都可基於上述單鏈表簡單方法組合實現。 單鏈表基本操作的實現
package pac1 class node public void show public class linklist 插入乙個頭結點 public void addheadnode int data 頭插法建立表,將新節點插入到頭結點之後 public void creatlist1 lin...
單鏈表基本操作的實現
includetypedef int elemtype typedef struct lnodelnode,linklist 初始化鍊錶,尾插法建立乙個單鏈表 void creatlist linklist l r next null 按序號查詢結點值 int getelem linklist l,...
單鏈表基本操作java實現
閒來無事,寫個資料結構鍊錶的實現 如下 package com.data structs class link class linklist 在表頭插入新的資料 public void insertfirst e value 判斷鍊錶是否為空 public boolean isempty 刪除表頭 ...