الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

link list

مغلق
بدأه ABDULLAH1003 في 19 أبريل 2004 · 7 رد · 1,636 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف الحال ياشباب

انا عندي مشروع programing languge

مطلوب مني اسوي مقارنه بين لغه السي و الجافا ؟؟؟؟؟؟؟؟؟

اذا ممكن تساعدوني بعده نقاط علشان اكتبها في برنامجين واحد بالس والثاني بالجافا

واوضح الفرق

المطلوب الثاني : هو كيف ممكن اسوي link list بالجافا

افيدوني افادكم الله :)

#2

السلام عليكم

هل تقصد implementation لل linked list ام مجرد شرحها ؟

#3

ابغا اعرف كيف اكتب الكود حقها ؟؟؟؟؟؟؟؟؟؟؟

#4

تكفون ياشباب ساعدوني!!!!!!!!!!!!!!1

#5

سأعطيك فكرة عن الجافا علماً أن الموضوع منقول :

ان لغة الجافا تحتل المركز الاول في لغات البرمجة من حيث الشعبية.

انت تتكلم عن لغة من الصعب ان الخص عملها او ماهيتها قي مقال صغير ، يكفيك ان الجافا بيئة تطوير وليست لغة برمجة ، بمعنى ان الجافا تمكنك من بناء Desktop Application و Web Application و Mobile Application بنفس البيئة فانت لست بحاجة الى تعلم شيء اخر.

اضف الى معلوماتك ان الجافا متبنيتها اكثر واكبر الشركات العالمية مثل IBM و ORACLE و SUN و Eclipse وغيرها. اضخم قواعد البيانات في العالم DB2 و ORACLE مبنيتان بالجافا. بورصة ناسداك مبنية بالجافا. قدرتك على بناء تطبيقات موزعة Distributed Application يعني شي ضخم جدا استخدامك ل Enterprise Java Bean مع RMI أو CORBA يعطي قوة لتطبيقك. خياراتك اكثر من كثيرة الجافا ليست فقط للتعامل مع الويب بل لكل مشروع ضخم. بالنسبة للتعامل مع الويب من خلال JSP – Java Server Page أو من خلال جافا Servlets أو من خلال Applets طبعا كل واحدة منها موضوع مستقل بذاته. ايضا برمجة الجوالات من خلال Java2ME يعني اكتب برنامجك وشغله على أي جهاز.

ايضا السيكيوريتي الموجودة في هذه اللغة من مميزاتها فانت بمجرد كتابتك للكود ولو كان طباعة سطر على الشاشة فكودك محمي بالكثير من مثل :

Class Loader

Bytecode Verifier

بالاضافة الى امكانية تشغيلها على اكثر من بيئة فانت وكمبرمج لست بحاجة الى كتابة كود مستقل لكل نظام بل اكتب ماتريد وشغله على أي نظام سواء Windows او Linux أو FreeBSD أو حتى على Main Frame

طبعا لم اتكلم سوى عن القليل من امكانيات هذه البيئة ان صح التعبير بامكانك رؤية عدد مهول من الاقسام داخل منتدى بشركة سن (مؤسسة الجافا) طبعا كل قسم يعتبر تكنولوجيا الجافا بمعنى انه جزء منها:

http://forum.java.sun.com

طبعا بالجامعات ما أظن انهم يعلموا الجافا بالشكل المطلوب يعني كلها عبارة عن برمجة عادية لاتمت لاهمية الجافا بصلة فالكود اللي يعطونه بامكانك عمله باي لغة سواء سي او بيرل او حتى فيجوال بيسك ، هذا اذا ماكانوا يعطوا الجافا الخاصة بمايكروسوفت (J# أو J++) وطبعا مايكوسوفت تسميها جافا وهي باي حال من الاحوال لاتمت للجافا بصلة.

أخي اتمنى ان تقرأ عن الجافا في البداية كتكنولوجيا ومن ثم كلغة برمجة ...

اتمنى لك التوفيق و أن تساعدك هذه المعلومات

الحياة كلها وقفة عز فقط

------------------------------------------

المجتمع معرفة و المعرفة قوة

#6

Linked Lists(القوائم المتصلة)

--------------------------------

هي سلسلة من Nodes(عقَد) و كل عقدة تكون child(طفلة) لسابقتها.

معظم المبرمجين يعتمدون على القوائم المتصله كمخزن وذلك لأنه بامكاننا ان نزيد و ننقص حجمه ولا شيئ يوقفنا عن زيادة القائمة المتصله الا مساحة الذاكرة.

الــــ Linked Lists لديها عقد واحدة فقط(One Node) وتكون متصلة لعقدة اخرى و العقدة الاخرى تكون متصلة لعقدة اخرى.

اول عقدة تسمى : the head of the list (اي رئس القائمة)

واخر عقدة تمتلك خاصية لتعلمنا انها اخر عقدة وهي انها تكون متصله بي Null(فراغ)

[node0]->[node1]->[node2]->[node3]->[node4]->null

المثال السابق هو توضيح للقائمة المتصلة

node0 هي الــ head node

node4 هي الــ last node وذلك لانها متصلة بــ null

الان بما انك تعلم ماهي القائمة المتصلة لنكتب الكود

import pOneChildNode;

public class pLinkedList{
    protected pOneChildNode head;
    protected int number;

    public pLinkedList(){
        head = null;
        number = 0;
    }
    public boolean isEmpty(){
        return head == null;
    }
    public int size(){
        return number;
    }
    public void insert(Object obj){
        head = new pOneChildNode(obj,head);
        number++;
    }
    public Object remove(){
        if(isEmpty())
            return null;
        pOneChildNode tmp = head;
        head = tmp.getNext();
        number--;
        return tmp.getData();
    }
    public void insertEnd(Object obj){
        if(isEmpty())
            insert(obj);
        else{
            pOneChildNode t = head;
            while(t.getNext() != null)
                t=t.getNext();
            pOneChildNode tmp =
                new pOneChildNode(obj,t.getNext());
            t.setNext(tmp);
            number++;
        }
    }
    public Object removeEnd(){
        if(isEmpty())
            return null;
        if(head.getNext() == null)
            return remove();
        pOneChildNode t = head;
        while(t.getNext().getNext() != null)
            t = t.getNext();
        Object obj = t.getNext().getData();
        t.setNext(t.getNext().getNext());
        number--;
        return obj;
    }
    public Object peek(int n){
        pOneChildNode t = head;
        for(int i = 0;i<n && t != null;i++)
            t = t.getNext();
        return t.getData();
    }
}

توضيح الكود

لقد قمنا بتعريف اسمين

الاول: head وهي العقدة الاولى للعقدة

الثاني: number وهي عدد العقد في القائمة

الـ number هو مطلب اساسي لمعرفة حجم القائمة

الــ

Method insert(Object)

للاضافة في البداية

Object remove()

لحذف اول Node وتنقيص number

insertEnd(Object)

للاضافة في الاخر

Object removeEnd()

للحذف من الاخر

Object peek(int)

للبحث

---------------------------------------------------------

ودائما يجب علينا تجربة الكود

import java.io.*;
import pLinkedList;

class pLinkedListTest{
    public static void main(String[] args){
        pLinkedList l = new pLinkedList();
        Integer j = null;
        int i;
        System.out.println("starting...");
        for(i=0;i<5;i++){
            j = new Integer((int)(Math.random() * 100));
            l.insert(j);
            System.out.println("insert: " + j);
        }
        for(;i<10;i++){
            j = new Integer((int)(Math.random() * 100));
            l.insertEnd(j);
            System.out.println("insertEnd: " + j);
        }
        for(i=0;i<l.size();i++)
            System.out.println("peek "+i+": "+l.peek(i));
        for(i=0;i<5;i++)
            System.out.println("remove: " + ((Integer)l.remove()));
        while(!l.isEmpty())
            System.out.println("removeEnd: " + ((Integer)l.removeEnd()));
        System.out.println("Done;-)");
    }
}

--------------------------------------------------------------------------

الناتج:

--------------------------------------------------------------------------

starting...
insert: 65
insert: 78
insert: 21
insert: 73
insert: 62
insertEnd: 82
insertEnd: 63
insertEnd: 6
insertEnd: 95
insertEnd: 57
peek 0: 62
peek 1: 73
peek 2: 21
peek 3: 78
peek 4: 65
peek 5: 82
peek 6: 63
peek 7: 6
peek 8: 95
peek 9: 57
remove: 62
remove: 73
remove: 21
remove: 78
remove: 65
removeEnd: 57
removeEnd: 95
removeEnd: 6
removeEnd: 63
removeEnd: 82
Done;-)

-------------------------------------------------------------------

دعواتكم

تم تعديل هذه المشاركة بواسطة mohausa في 24 أبريل 2004 في 12:15

#7

اخوي ما قصرت والله يجزاك خير بس

ال import الي انت حاطها في الكلاس الكومبايللا مو راضي يتعرف عليها

تكفا شفلي وش المشكله

اقتباس
import pOneChildNode;
#8

اخي ABDULLAH1003

الــــ مرفقات

pOneChildNode.java

pOneChildNode.class

Java.rar

تم تعديل هذه المشاركة بواسطة mohausa في 26 أبريل 2004 في 11:29

هذا الموضوع مغلق.

مواضيع مشابهة