Home PC Games Linux Windows Database Network Programming Server Mobile  
           
  Home \ Programming \ Using Lua implement various operations list     - Python virtual environment: Virtualenv (Linux)

- Linux System Getting Started Learning: On Linux how to convert text files to PDF (Linux)

- Linux performance optimization tools perf top (Linux)

- Kali Linux resolve GPG error KEYEXPIRED 1425567400 (Linux)

- CentOS7 + Redis Live Installation and Configuration (Linux)

- Mysql binlog resolve the garbage problem decryption (Database)

- Ubuntu Eclipse configuration Gtk + 2.0 libraries (Linux)

- Linux process or thread is bound to a CPU (Programming)

- Linux Operating System Security Study (Linux)

- Use Bash script write CVS version control (Server)

- How do I cancel (almost) any operations in Git, (Linux)

- To setup NOTRACK and TRACK of conntrack in iptables (Linux)

- Linux Workstation Security Checklist - from the Linux Foundation Internal (Linux)

- Linux environment variable settings methods and differences (Linux)

- How to use the process on the desktop xkill end Linux (Linux)

- Linux Shell introduces (Linux)

- CentOS achieve trash mechanism (Linux)

- Linux, MySQL root privilege escalation another method (Linux)

- About enhanced Linux / Unix server system security program (Linux)

- Zabbix Agent for Linux Installation and Configuration (Server)

 
         
  Using Lua implement various operations list
     
  Add Date : 2018-11-21      
         
         
         
  Using Lua implement various operations list

#! / Usr / local / bin / lua

--Lua Achieve list
node = {}
list = node

- Initialization construct an empty table
function init ()
 list.data = 0
 list.next = nil
end

- Adding data to the end of the list
function addRear (d)
 node.next = {} - the establishment of a node, a node is equivalent to malloc
 node = node.next
 node.next = nil
 node.data = d
 list.data = list.data + 1
end

- Adding data to the head of the list
function addHead (d)
 newNode = {} - the establishment of a node, a node is equivalent to malloc
 newNode.data = d
 newNode.next = list.next
 list.next = newNode
 list.data = list.data + 1
end

- I-th position of the insertion data d i> = 1
function insert (i, d)
 if i <1 then
  print ( 'legal position is not inserted')
  return
 end
 
 local j, k, l = i-1,0, list - find the i-th position
 while k ~ = j do
  k = k + 1
  l = l.next
  if not l.next then break end
 end
 --if k ~ = j then print ( "insert position is not lawful") return end
 
 - Start insert
 newNode = {}
 newNode.next = l.next
 newNode.data = d
 l.next = newNode
 list.data = list.data + 1
end
 
- Every element of the list to print
function display ()
 local l = list.next
 while l do
  io.write (l.data .. "")
  l = l.next
 end
 print ( ' n-- display ok -')
end

- To determine whether the list is empty
function is_empty ()
 return list.data == 0
end

- Remove the i-th position data i> = 1 returns the contents of deleted data
function delete (i)
 if i <1 then
  print ( 'legal position is not deleted')
  return
 end
 
 local j, k, l = i-1,0, list
 while k ~ = j do
  k = k + 1
  l = l.next
  if not l.next then break end
 end
 
 - Start deleting
 d = l.next.data
 t = l.next.next
 l.next = nil
 l.next = t
 list.data = list.data-1
 return d
end

- Clean the list, after the operation is completed, the list also, but is empty, the initialization state fairly the beginning
function clear ()
 if not list then
  print ( 'list does not exist')
 end
 
 while true do
  firstNode = list.next
  if not firstNode then - indicates the list is already empty table
   break
  end
  t = firstNode.next
  list.next = nil
  list.next = t
 end
 list.data = 0
 print ( '- clear ok -')
end

- Destruction list
function destory ()
 clear () - to clear the list
 list = nil
end

- Get the i-th element of i> 1 value
function getData (i)
 if not list then
  print ( 'list does not exist')
  return
 end
 if i <1 then
  print ( 'not legal position')
  return
 end
 
 local l = list.next - points to the first element
 local k = 1
 while l do
  if k == i then
   return l.data
  end
  l = l.next
  k = k + 1
 end
 
 print ( 'not legal position')
end
  
- Get the length of the list
function getLen ()
 if not list then
  print ( 'list does not exist')
  return
 end
 return list.data
end

- Main Method
function main ()
 init ()
 addRear (5)
 addRear (7)
 addRear (10)
 addHead (1)
 addHead (2)
 insert (2,4)
 display ()
 
 
 print ( 'Enter the location you want to delete the elements:')
 pos = io.read ( '* number')
 ret = delete (pos)
 if not ret then
  print ( 'deletion failed')
 else
  print ( 'the element you want to delete is:' .. ret)
 end
 print ( 'the contents of the list is deleted:')
 display ()
 
 print ( 'Enter the location you want to get elements:')
 pos = io.read ( '* number')
 print ( 'first' ..pos .. 'element content is:' .. getData (pos))
 print ( 'the length of the list is:' .. getLen ())
 
 destory () - Destruction list
 print ( '- main end -')
end
 
- Entrance Program
main ()
     
         
         
         
  More:      
 
- Vi editor Introduction (Linux)
- To use Android RecyclerView (Programming)
- C language files update in real time (Programming)
- 20 Linux commands interview questions and answers (Linux)
- Binary tree and some basic operations with binary list (Programming)
- 10 important Linux ps command combat (Linux)
- Linux Powerful command Awk Introduction (Linux)
- Erlang concurrency and foundation (Programming)
- The sublime into IDE (Linux)
- Windows Desktop use VNC remote connect Linux (Linux)
- Try the command ip, ifconfig is obsolete under Linux (Linux)
- Oracle GoldenGate encryption (Database)
- to install the deployment of LVS under CentOS 7.0 (Server)
- Nginx + Tomcat static and dynamic load balancing and separation configuration essentials under Linux (Server)
- Strategy Games Ubuntu installation of Wesnoth 1.12.1 (Linux)
- Ubuntu 64-bit installation Adobe Reader 9.5.5 (Linux)
- Linux three ways to set environment variables (Linux)
- Linux file permissions chmod chown (Linux)
- Use SocketServer write a sockets program (Programming)
- impdp error ORA-31631, ORA-39122 (Database)
     
           
     
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.