Меня недавно спросили о связанном списке, и друг сказал это, обсуждая со мной Java. Честно говоря, я очень мало узнал в прошлом году, что изучал программирование. Я выучил Java и C# в языках, и я немного узнал о HTML+CSS+JavaScript о Интернете. Поскольку я предпочитаю это, я более серьезный, когда изучаю Winform, и я сам изучал операции базы данных. Но я никогда не изучал и не изучал связанный список. Кроме того, я недавно читал WPF, и курс достиг JSP, который является относительно плотным.
Но мне все еще потребовалось ночь и полдня, чтобы посмотреть на односторонний список связанного списка. И я попытался написать пример, используя Java. Друзья, которые не подвергались воздействию связанного списка, могут использовать его в качестве ссылки. Я надеюсь, что вы дадите более ценные предложения.
Давайте сначала объясним, что такое связанный список. Насколько я знаю, связанный список - это структура данных, которая находится на том же уровне, что и массив. Например, принцип реализации ArrayList, который мы используем в Java, является массивом. Принцип реализации LinkedList является Linked List. Мой учитель сказал, что связанные списки не являются эффективными при циркуляции, но имеют очевидные преимущества при вставке и удалении. Тогда у него более десяти лет опыта программирования, я верю в это. Но я не знаю, говорит ли он о двухсторонних связанных списках. Мы здесь, чтобы понять только односторонние связанные списки.
Связанные списки (цепочка, упомянутая в этой статье, представляют собой однонаправленные связанные списки, и все они называются однонаправленными связанными списками), на самом деле состоит из узлов (узлов), а связанный список имеет неопределенное количество узлов. Существует только один узел головного узела (голова), открытый наружу, и все наши операции в связанном списке выполняются прямо или косвенно через его главный узел.
Узел состоит из объекта, который необходимо хранить, и ссылки на следующий узел. То есть узел имеет два члена: хранимый объект, ссылка на следующий узел.
Вы можете не понимать это очень хорошо, и вам может быть легче понять, если я опубликую картинку.
Ключевые коды для реализации основных операций Java Single Linked Lists следующие:
пакет com.tyxh.link; // Узел класса открытого класса Node {защищенный узел Next; // Полевое поле Pointer Protected Int Data; // Поле данных общего узла (int data) {this. data = data; } // Показать этот узел public void display () {System. out.print (data + ""); }} пакет com.tyxh.link; // односложенный список публичного класса Linklist {public Node First; // Определите заголовок private int pos = 0; // местоположение Node Public LinkList () {this. первый = null; } // Вставить головную узла public void addFirstNode (int data) {node node = new Node (data); узел. Next = First; First = node; } // Удалить узлом головного узла и вернуть главный узел общего узла deleteFirstNode () {node tempnode = first; First = tempnode. следующий; вернуть Tempnode; } // Вставьте узел в любом месте и вставьте public void после индекса add (int index, int data) {node node = new Node (data); Узел ток = первое; Узел предыдущий = первое; while (pos! = index) {предыдущий = ток; ток = ток. следующий; POS ++; } Узел. Next = current; предыдущий. Next = Node; pos = 0; } // Удалить узлы в любом местоположении общедоступного узла deleteBypos (int index) {node current = first; Узел предыдущий = первое; while (pos! = index) {pos ++; предыдущий = ток; ток = ток. следующий; } if (current == First) {First = First. следующий; } else {pos = 0; предыдущий. Далее = ток. следующий; } вернуть ток; } // Удалить узел в соответствии с данными узла (только удалить первый) общедоступный узел DeleteByData (int Data) {узловой ток = First; Узел предыдущий = первое; // Запомните предыдущий узел while (current. Data! = Data) {if (current. Next == null) {return null; } предыдущий = ток; ток = ток. следующий; } if (current == First) {First = First. следующий; } else {предыдущий. Далее = ток. следующий; } вернуть ток; } // Показать всю информацию о узле public void displayallNodes () {node current = first; while (current! = null) {current.display (); ток = ток. следующий; } Система. out.println (); } // Найти информацию о узле на основе местоположения общедоступного узла findBypos (int index) {node current = first; if (pos! = index) {current = current. следующий; POS ++; } вернуть ток; } // Найти информацию о узле на основе данных общего узла FindByData (int Data) {Node Current = First; while (current. data! = data) {if (current. next == null) return null; ток = ток. следующий; } вернуть ток; }} пакет com.tyxh.link; // тестовый класс открытый класс TestLinkList {public Static void Main (String [] args) {Linklist Linklist = new LinkList (); linklist.addfirstnode (20); linklist.addfirstnode (21); linklist.addfirstnode (19); // 19,21,20 Linklist.Add (1, 22); // 19,22,21,20 Linklist.Add (2, 23); // 19,22,23,21,20 LinkList.Add (3, 99); // 19,22,23,99,21,20 LinkList.DisplayAllnodes (); // node node = linklist.deletefirstnode (); // system.out.println ("node:" + node.data); // linklist.displayallnodes (); // node = linklist.deletebypos (2); // system.out.println ("node:" + node.data); // linklist.displayallnodes (); // linklist.deletefirstnode (); Node node = linklist.deletebydata (19); // node node = linklist.deletebypos (0); Система. out.println ("Узел:" + Узел. DATA); linklist.displayallnodes (); Node node1 = linklist.findbypos (0); Система. out.println ("node1:" + node1. Data); Node node2 = linklist.findbydata (22); Система. out.println ("node2:" + node2. data); }}Выше приведено внедрение основных операций Java Single Linked Sists, представленных вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!