但由于身旁无人指导,无法判断程序的好坏。
所以贴上来请各位高手指点一下,还有哪里需要改进的。
我会尽量作到指点者人人有分的,谢谢。
注:以下程序copy到记事本上存为html文件即可运行。
以下的插入,修改,删除等都是假设在不了解链表长度的情况下进行操作的。
<script language=vbscript>
'-----------------------------------------------------
' VBscript模拟单链表
'-----------------------------------------------------
Option Explicit
dim link '链表
dim i_number '链表长度(生成链表时用)
dim a_link '链表单元值(生成链表时用)
dim insert_key '插入位置
dim edit_key '修改位置
dim del_key '删除位置
insert_key=6
edit_key=6
del_key=6
set link=nothing
'-----------------------------------------------------
' 链表类
'-----------------------------------------------------
class c_learn
Public name,oldname
end class
'-----------------------------------------------------
' 显示链表
'-----------------------------------------------------
sub show_link(s_link)
window.document.write s_link.name & " "
if s_link.oldname is nothing then exit sub
show_link(s_link.oldname)
end sub
'-----------------------------------------------------
' 生成链表
'-----------------------------------------------------
for i_number=10 to 1 step -1
set a_link=new c_learn
a_link.name=i_number
set a_link.oldname=link
set link=a_link
set a_link=nothing
next
'-----------------------------------------------------
' 插入数据
'-----------------------------------------------------
sub insert_link(c_data,c_key)
dim while_x 'while的结束标识
dim str_obj '插入的位置
dim link_count '位置累计
dim new_link '插入单元
link_count=c_key-2
set new_link=new c_learn
new_link.name=c_data
if c_key<=1 then
'如果插入的位置小于或等于一,将在链表的首部插入
set new_link.oldname=link
set link=new_link
while_x=1
end if
while while_x=""
if link_count<=0 or (eval("link"&str_obj).oldname is nothing) then
set new_link.oldname=eval("link"&str_obj).oldname
set eval("link"&str_obj).oldname=new_link
while_x=1
end if
str_obj=str_obj&".oldname"
link_count=link_count-1
wend
set new_link=nothing
end sub
'-----------------------------------------------------
' 修改数据
'-----------------------------------------------------
sub edit_link(c_data,c_key)
dim while_x 'while的结束标识
dim str_obj '修改的位置
dim link_count '位置累计
link_count=c_key-1
if link_count<=-1 then while_x=1
while while_x=""
if eval("link"&str_obj) is nothing then while_x=1
if link_count<=0 and while_x="" then
eval("link"&str_obj).name=c_data
while_x=1
end if
str_obj=str_obj&".oldname"
link_count=link_count-1
wend
end sub
'-----------------------------------------------------
' 删除数据
'-----------------------------------------------------
sub del_link(c_key)
dim while_x 'while的结束标识
dim str_obj '修改的位置
dim link_count '位置累计
link_count=c_key-2
if link_count<=-1 then while_x=1
while while_x=""
if eval("link"&str_obj) is nothing then while_x=1
if link_count<=0 and while_x="" then
if eval("link"&str_obj).oldname is nothing then
set eval("link"&str_obj).oldname=nothing
else
set eval("link"&str_obj).oldname=eval("link"&str_obj).oldname.oldname
end if
while_x=1
end if
str_obj=str_obj&".oldname"
link_count=link_count-1
wend
end sub
'-----------------------------------------------------
window.document.write "原始链:"
call show_link(link)
window.document.write "<p>"
window.document.write "插入操作:<br>"
call insert_link("插入的数据",insert_key)
window.document.write " 插入位置:"&insert_key&"<br> "
call show_link(link)
window.document.write "<br>"
window.document.write "修改操作:<br>"
call edit_link("修改的数据",edit_key)
window.document.write " 修改位置:"&edit_key&"<br> "
call show_link(link)
window.document.write "<br>"
window.document.write "删除操作:<br>"
call del_link(del_key)
window.document.write " 删除位置:"&del_key&"<br> "
call show_link(link)
window.document.write "<br>"
</script>
7 个解决方案
#1
调试一下!再讲!
#2
原始链:1 2 3 4 5 6 7 8 9 10
插入操作:
插入位置:6
1 2 3 4 5 插入的数据 6 7 8 9 10
修改操作:
修改位置:6
1 2 3 4 5 修改的数据 6 7 8 9 10
删除操作:
删除位置:6
1 2 3 4 5 6 7 8 9 10
我把它保存为*.htm以后
就出现了上面的样子!有什么作用???
插入操作:
插入位置:6
1 2 3 4 5 插入的数据 6 7 8 9 10
修改操作:
修改位置:6
1 2 3 4 5 修改的数据 6 7 8 9 10
删除操作:
删除位置:6
1 2 3 4 5 6 7 8 9 10
我把它保存为*.htm以后
就出现了上面的样子!有什么作用???
#3
to 空间
这个就是模拟单链表的生成,插入,修改及删除的操作后生成的结果。
链表是数据结构里说到的一种数据存储方式。但是书里是用c实现的,我是想把它应用在vbscript里。所以才写了这一大段东西。请多多指教。
这个就是模拟单链表的生成,插入,修改及删除的操作后生成的结果。
链表是数据结构里说到的一种数据存储方式。但是书里是用c实现的,我是想把它应用在vbscript里。所以才写了这一大段东西。请多多指教。
#4
老兄,劝你不要把code搞上去,很少有人去看的,有什么其他的问题可以去问,要知道,看别人的程序是很烦。。。。。。:)
#5
人家是自己的成果,不是来求助的
#6
唉!看来是没办法了,结束吧。
#7
唉!看来是没办法了,结束吧。
#1
调试一下!再讲!
#2
原始链:1 2 3 4 5 6 7 8 9 10
插入操作:
插入位置:6
1 2 3 4 5 插入的数据 6 7 8 9 10
修改操作:
修改位置:6
1 2 3 4 5 修改的数据 6 7 8 9 10
删除操作:
删除位置:6
1 2 3 4 5 6 7 8 9 10
我把它保存为*.htm以后
就出现了上面的样子!有什么作用???
插入操作:
插入位置:6
1 2 3 4 5 插入的数据 6 7 8 9 10
修改操作:
修改位置:6
1 2 3 4 5 修改的数据 6 7 8 9 10
删除操作:
删除位置:6
1 2 3 4 5 6 7 8 9 10
我把它保存为*.htm以后
就出现了上面的样子!有什么作用???
#3
to 空间
这个就是模拟单链表的生成,插入,修改及删除的操作后生成的结果。
链表是数据结构里说到的一种数据存储方式。但是书里是用c实现的,我是想把它应用在vbscript里。所以才写了这一大段东西。请多多指教。
这个就是模拟单链表的生成,插入,修改及删除的操作后生成的结果。
链表是数据结构里说到的一种数据存储方式。但是书里是用c实现的,我是想把它应用在vbscript里。所以才写了这一大段东西。请多多指教。
#4
老兄,劝你不要把code搞上去,很少有人去看的,有什么其他的问题可以去问,要知道,看别人的程序是很烦。。。。。。:)
#5
人家是自己的成果,不是来求助的
#6
唉!看来是没办法了,结束吧。
#7
唉!看来是没办法了,结束吧。