Home PC Games Linux Windows Database Network Programming Server Mobile  
           
  Home \ Programming \ Using Lua implement various operations list     - Import and export myloader accelerate mydumper (Database)

- Ubuntu install Eclipse can not find JAVA_HOME problem (Linux)

- Linux System Getting Started Learning: Fix ImportError: No module named scapy.all (Linux)

- OpenvSwitch 2.1.2 shell script to start and stop (Linux)

- Hardware Firewall Basics (Linux)

- Android application simulates the phone keypad (Programming)

- HTML5 Application Cache (Programming)

- Bitmap memory footprint of computing Android memory optimization (Linux)

- Oracle Shared Server Configuration (Database)

- C ++ Learning Notes: references (Programming)

- Java Performance Tuning the proxy mode (Programming)

- Android development, may cause a memory leak problem (Programming)

- ORA-12547: TNS: lost contact error Solution (Database)

- Ubuntu 14.04 jdk Installation and Configuration (Linux)

- To add the Oracle JDBC driver in Maven repository (Linux)

- Struts2 interceptor simulation (Programming)

- Ubuntu 15.04 installation Powercommands 2.0 (Linux)

- Android Activity launchMode (Programming)

- Share useful bash aliases and functions (Linux)

- Linux serial port driver test (Linux)

 
         
  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:      
 
- Necessity in Java packages (Programming)
- How SSHfs mount a remote file system on Linux (Linux)
- The Linux kernel and AVL tree in red-black tree (Programming)
- To use iostat display I / O status under Linux (Linux)
- QEMU code analysis: BIOS loading process (Linux)
- JavaScript original values and complex values (Programming)
- CentOS 7 update source - the use of domestic sources 163 yum (Linux)
- KVM QEMU virtual machine installation configuration under CentOS (Linux)
- Hadoop2.0 configuration yarn success (Server)
- Python, and / or (Programming)
- Repair Chrome for Linux is (Linux)
- Android gets the global process information and the memory used by the process (Programming)
- Ubuntu FAQ solutions (Linux)
- Linux file permissions and access modes (Linux)
- MySQL performance view and configure finishing Daquan (Database)
- Postmodern systems programming language (Programming)
- There are more than one server, there is reason to try cloud operating system (Server)
- DataGuard add temporary data files bug (Database)
- OpenWRT environment to build (Linux)
- Three strategies to teach you to release the device memory (Linux)
     
           
     
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.