Home PC Games Linux Windows Database Network Programming Server Mobile  
           
  Home \ Programming \ Using Lua implement various operations list     - ORA-01000 Solution (Database)

- To teach you a trick to find the real IP address (Linux)

- Linux Network Analysis Tcpdump Command Guide (Linux)

- Three methods easy data encryption on Linux (Linux)

- Git common skills (Linux)

- Under CentOS using yum command to install the Task Scheduler crontab (Linux)

- Linux mount command Detailed (Linux)

- ssh port forwarding Comments (Server)

- Linux novice common commands (Linux)

- The PostgreSQL database pg_dump command line does not enter a password method (Database)

- Oracle Data File Management (Database)

- Selection sort, insertion sort, and Shell sort (Programming)

- ORA-12154 TNS could not resolve the specified identifier (Database)

- Graphing tool: Gnuplot (Linux)

- Bash job control (Linux)

- Xshell key authentication mechanism using a remote login Linux (Linux)

- CentOS install Memcached (Server)

- Python variable type (Programming)

- Comparison of Nginx and Nginx + (Server)

- Install Ruby on Rails in Ubuntu 15.04 in (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:      
 
- PHP interview questions of design patterns (Programming)
- Windows 8.1 and Ubuntu 14.04 dual system uninstall Ubuntu Tutorial (Linux)
- Mac OS X 10.9 compiler OCI8 module (Programming)
- Moosefs Distributed File System Configuration (Server)
- How to upgrade to Ubuntu 14.04 Linux Kernel 4.4.1 LTS (Linux)
- Achieve camera preview by ffplay (Linux)
- Java, extends and implements Usage (Programming)
- Shell scripts quickly deploy Tomcat project (Server)
- MySQL tmpdir parameter modification (Database)
- Linux system security infrastructure Highlights (Linux)
- Linux System Getting Started Learning: In RedHat Linux driver compiled Ixgbe (Linux)
- Change CentOS 7 NIC name eno16777736 to eth0 (Linux)
- Binary tree and some basic operations with binary list (Programming)
- CentOS 6.5 boot automatically mount the hard drive (Linux)
- Linux C source code (Ascii HexToBinary: Converts hexadecimal string format ASCII codes) (Programming)
- ssh using scp: / directory: Permission denied (Server)
- Usage logs Python library (Programming)
- How to display a dialog Bash Shell script (Programming)
- Hadoop 2.6.0 stand-alone / pseudo-distributed installation (Server)
- Oracle Duplicate build DataGuard (Database)
     
           
     
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.