Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
80%
(20)
80% found this document useful (20 votes)
51K views
462 pages
Data Sructure - Schaum's Series
Data Structures with C (Schaum's Outline Series)
Uploaded by
evryones_scribd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download
Save
Save Data Sructure - Schaum's Series For Later
Share
80%
80% found this document useful, undefined
20%
, undefined
Print
Embed
Report
80%
(20)
80% found this document useful (20 votes)
51K views
462 pages
Data Sructure - Schaum's Series
Data Structures with C (Schaum's Outline Series)
Uploaded by
evryones_scribd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Carousel Previous
Carousel Next
Download
Save
Save Data Sructure - Schaum's Series For Later
Share
80%
80% found this document useful, undefined
20%
, undefined
Print
Embed
Report
Download
Save Data Sructure - Schaum's Series For Later
You are on page 1
/ 462
Search
Fullscreen
Preface 10 the Adapted Edition xi Preface ili 1, INTRODUCTION AND OVERVIEW ~~ 1.1 Introduction .... 12. Basic Terminology: Elementary Data Organiza 1.3. Data Structures - 1.4 Data Structure Operations... ' 1.5. Algorithms: Complexity, Time- Space Tradeoff.. Solved Problemy rece 2. PRELIMINARIES 2.1. Introduction . > Mathematical Notation and Functions 2.3. Algorithmic Notation. 2.4 Control Structures 2.5 Complexity of Algorithms - 26 Other Asymptotic Notations for Complexity of Algorithms @, ©, 0. 2.7. Subalgorithms .. . 2.8 Variables, Data Types ....- Solved Problems Supplementary Problems. Programming Problemsre Contents vill 3. STRING PROCESSING 3.1 3.2 33 3.4 3.5 3.6 37 4. ARRAYS, RECORDS AND POINTERS 41 42 43 44 45 46 47 48 49 4.10 4.11 412 4.13 4.14 5. LINKED LISTS 5.1 5.2 5.3 S4 55 5.6 37 5.8 \ Introduction Basic Terminology Storing Strings Character Data Type String Operations .. Word Processin; Pattern Matching Algorithms Solved Problems . os Supplementary Problems. Programming Problems ...... Introductior Linear Arrays .... Representation of Linear Arrays in Memory . Traversing Linear Array: Inserting and Deleting Sorting: Bubble Sort... Searching; Linear Search .. Binary Searc Multidimensional Arrays Pointers; Pointer Arrays Records; Record Structures Representation of Records in Memory; Parallel Arrays . Matrices Sparse Matrices Solved Problems .. 7 Supplementary Problems Programming Problems Introduction .. Linked Lists Representation of Linked Lists in Memory . Traversing a Linked List Searching a Linked List Memory Allocation; Garbaye Collection Insertion into a Linked List Deletion from a Linked ListContents 5.9 Header Linked Lis 5.10 Two-way List Solved Problems Supplementary Proble Programming Problems = STACKS, dUeues, RECURSION 6.1. Introduction 62 Stacks... 6.3. Atray Representation of Stacks 6.4 Linked Representation of Stacks ... 6.5 Arithmetic Expressions; Polish Notation .. 6.6 Quicksort, an Application of Stacks... 6.7 Recursion. 68 Towers of Hanoi 6.9 Implementation of Recursive Procedures by Stacks. 6.10 Queues..... - 6.11 Linked Representation of Queues 6.12 Deques . 6.13 Priority Queues .. Solved Problems Supplementary Problems Programming Problems = AA) Introduction 72 Binary Trees 73 Representing Binary Trees m Memory 7.4 Traversing Binary Trees . 7/5 Traversal Algorithms using Stacks 7.6 Header Nodes; Threads 7.1 Binary Search Trees 7.8 Searching and Inserting in Binary Search Trees 79 Deleting in a Binary Search Tree 7.10 AVL Search Trees .. TIL Insertion in an AVL Search Tree 7.12 Deletion in an AVI. Search Tree .. 7.13 m-way Search Trees... 7.14 Searching, Insertion and Deletion in an m-way Search Tree 7.15 B Trees ~ 716 Searching, Insertion “and Deletion in a B-treeContents 9. 1: 7.17 Heap; Heapsort ... . 288 7.18 Path Lengths; Huffman’s Alg: 65 7.19 General Trees . 271 Solved Problems .. - 18 Supplementary Problems. 192 Programming Problems .. GRAPHS AND THEIR APPLICATIONS 8.1-8.47 8.1 Introduction . 8.2. Graph Theory Terminology os 83. Sequential Representation of Graphs; Adjacency Matrix; Path Matrix 8.4 Warshall’s Algorithm; Shortest Paths 8.5. Linked Representation of a Graph 8.6 Operations on Graphs . 8.7. Traversing a Graph 8.8 Posets; Topological Sorting Solved Problems seruuenen Supplementary Problems... 8. 12 8.15 8.21 8.25 8.30 841 Progr Probl . Programming Problems 8.45 SORTING AND SEARCHING 9.1-9.27 9.1 Introduction 9.2 Sorting 9.3 Insertion Sort... 9.4 Selection Sort... 9.5. Merging 9.6 Merge-Sort. 9.7 Radix SOM von, 9.8 Searching and Data Modification . : 9.9 Hashing nn oe sees 918 Supplementary ~ sonnei, 9.20 Appendix a Index AI-AI9 LI-LSPreface to the Adapted Edition Data structures is a subject of primary importance to the discipline of Computer Science. Organiz~ ing oF structuring data is vital to the design and implementation of efficient algorithms and program development, Niklaus Wirth very aptly captured the role played by Data structures in the crisp title Of his book “Algorithms + Data structures = Programs"! In fact any discipline in Science and Engineering that requires efficient problem solving using computers, undoubtedly calls for the application of appropriate data structures during program development rrroe to the ideology of the Schaums outline Series. the present version of this book includes a concise presentation of data siructures such as AVL Trees, m-way search trees and B trees supplemented with solved problems and programming problems, A brief discussion on other monations of algorithm complexity, apart from O notation, has also been included. To demonstrate the implementation of data structures in a specific programming language, an Appendix illustrating the implementation of a selective set of algorithms and procedures from the main text in the programming language C, has been added Acknowledgements ‘The adaptation author expresses her sincere thanks and gratitude to Sri V Rajan, Managing Trustee, and Sri C R Swaminathan, Chief Executive, PSG Institutions and the Principal, PSG College of Technology for the constant support and encouragement provided by them. “Jered by her graduate students, Mr Mukesh Kumar Singh and Mr RS Kamalesh gratefully acknowledged. ‘The assistance rent in the production of the book isaa xi Preface to the Adapted Edition she would like to express her appreciation to the editorial and production staff of Tata McGraw. Hill, for the excellent production values of this revised version of the book. She would like to place on record her reverence and gratitude to her parents for their blessings and inspiration. The support and help provided by her sisters Rekha and Udaya in all her endeavours is affectionately remembered. G A Vijayalakshmi PajPreface The study of data structures is an essential part of virtually every under graduate and graduate program in computer science. This text, in presenting the more essential material, may be used as a textbook for a formal course in data structures or as a supplement to almost all current standard texts. ‘The chapters are mainly organised in increasing degree of complexity. Chapter | is an introduction and overview of the material, and Chapter 2 presents the mathematical background and notation for the presentation and analysis of our algorithms, Chapter 3, on pattern matching, is independent and tangential to the text and hence may be postponed or omitted on a first reading. Chapters 4 through 8 contain the core material in any course on data structures. Specifically, Chapter 4 treats arrays and records, Chapter 5 is on linked lists, Chapter 6 covers stacks and queues and includes recursion, Chapter 7 is on binary trees and Chapter 8 is on graphs and theit applications. Although sorting and searching is discussed throughout the text within the context of specific data structures (eg, binary search with linear arrays, quicksort with stacks and queues and heapsort with binary trees), Chapter 9, the last chapter, presents additional sorting and searching algorithms such as -sort and hashing. eons are presented ina form which is machine and language independent. Moreover, they IF-THEN-ELSE and REPEAT-WHILE modules for flow of control, and ting an indentation pattern for easier reading and understanding. Accordingly, each of our algo- rithms may be readily translated into almost any standard programming language. Adopting a deliberately elementary approsch to the subject matter with many examples and diagrams, this book should appeal to a wide audience, and is particularly suited as an effective saa ide, Each chapter contains clear statements of definitions and principles together with soir study Bd other descriptive material. This is followed by graded sets of solved and are written using mainly_—_—~—~— Preface xiv problems illustrate and amplify the material, and the supplementary problems furnish a complete review of the material in the chapter. ; 1 wish to thank many friends and colleagues for invaluable suggestions and critical review of the manuscirpt. [also wish to express my gratitude to the staff of the McGraw-Hill Schaum’s Outline Series, especially Jefftey McCartney, for their helpful cooperation. Finally, I join many other authors in explicitly giving credit to Donald E. Knuth who wrote the first comprehensive treatment of the subject of data. structures, which has certainly influenced the writing of this and many other texts on the subject. supplementary problems. The solved Seymour LipschutzChapter One Introduction and Overview 1.1 INTRODUCTION This chapter introduces the subject of data structures and presents an overview of the content of the text. Basic terminology and concepts will be defined and relevant examples provided. An overview of data organization and certain data structures will be covered along with a discussion of the different operations which are applied to these data structures. Last, we will introduce the notion of an algorithm and its complexity, and we will discuss the time-space tradeoff that may occur in choosing a particular algorithm and data structure for a given problem. 1.2 BASIC TERMINOLOGY; ELEMENTARY DATA ORGANIZATION Data are simply values or sets of values. A dara item refers to a single unit of values. Data items that are divided into subitems are called group items; those that are not are called elementary items. For example, an employee's name may be divided into three subitems—tfirst name, middle initial and last name—but the social security number would normally be treated as a single item. Collections of data are frequently organized into a hierarchy of fields, records and files. In order to make these terms more precise, we introduce some additional terminology ‘an entity is something that has certain attributes or properties which may be assigned values. ‘The values themselves may be either numeric or nonnumeric, For example, the following are possible attributes and their corresponding values for an entity, an employee of a given organization: it Age Sex Social Security Ni Attributes: Name Z ial Security Number Values: ROHLAND, GAIL 34 F 134-24-5533oz] Data Structures 1 « I the employees in an organization) form an entity ser, tes (e.g al Entities with similar attribut values, the set of all possible values that could be Each attribute of an entity set has a range of assigned to the particular attribute. sed for data with given attributes, or, in other words, The term “information” is sometimes us ee erste are organized into the hierarchy of fields, revords croc ae wee we relationship between attributes, entities and entity sets. That i ‘ fe tection Of field values of a of information representing an attribute of an entity, a record is ven entity set. given entity and a file isthe collection of records of the entities 10 si Sr nay uniquely Each record in a file may contain many field items, but the val pe in a ceri ee determine the record in the file. Such a field K is called a primary key, 1 such a field are called keys or key values. Example 1.1 (a) Suppose an automobile dealership maintains an inventory file where each record contains the following data: Serial Number, Type, Year, Price, Accessories The Serial Number field can serve as a primary key for the file, since each automobile has a unique serial number. (b) Suppose an organization maintains a membership file where each record contains the following data: Name, Address, Telephone Number, Although there are four data items, Name and Address may be group items. Here the Name field is a primary key. Note that the Address and Telephone Number fields may not serve as primary keys, y since some members may belong to th same family and have the same address and telephone number, oy ® Dues Owed Records may also be classified according to length. A file i R can have fixed-1 variable-length records. In fixed-length records, all the recotds contain theme ae items with : length records, file records may 'y have variable lengths, since different “length records have a minimum and @ contain different lengths. For example, students take different numbers of courses. Usuall maximum length. The above organization of dats into fields, records and files ma matte of tae ee Pes of structures. The study of such data struct ese sala ate also organized matter of this text, includes the following three stepss nies which forms the subject ly, variable. (1) Logical or mathematical dese: iption of the s (2) Implementation of the struct he structure ‘ure on a computerIntroduction and Overview 1.3 (3) Quantitative analysis of the structure, which includes determining the amount of memory needed to store the structure and the time required to process the structure. ‘The next section introduces us to some of these data structures. Remark: The second and third of the steps in the study of data structures depend on whether the data are stored (a) in the main (primary) memory of the computer or (b) in a secondary (external) Storage unit. This text will mainly cover,the first case. This means that, given the address of a memory location, the time required to access the content of the memory cell does not depend on the particular cell or upon the previous cell accessed. The second case, called file management or data base management, is a subject unto itself and lies beyond the scope of this text. (1.3 DATA STRUCTURES -.-~ Data may be organized in many different ways(ie logical or mathematical model of a particular organization of data is called a data structure) The choice of a particular data model depends on two considerations. First, it must be rich enough in structure to mirror the actual relationships of the data in the real world. On the other hand, the structure should be simple enough that one can effectively process the data when necessary. This section will introduce us to some of the data structures which will be discussed in detail later in the text. Arrays —~ The simplest type of data structure is a linear (or one-dimensional) array. By a linear array, we mean a list of a finite number n of similar data elements referenced respectively by a set of n consecutive numbers, usually 1, 2, 3, ..., 1. If we choose the name A for the array, then the elements of A are denoted by subscript notation yy G2 Ay, voy Gy or by the parenthesis notation A(1), A(2), AG), «5 AQN) or by the bracket notation ACI], A[2], A[3]. .... ALN] Regardless of the notation, the number K in A[K] is called a subscript and A[K] is called a subscripted variable Remark: The parentheses notation and the bracket notation are frequently used when the array name consists of more than one letter or when the array name appears in an algorithm, When using this notation we will use ordinary uppercase letters for the name and subscripts as indicated above by the A and N. Otherwise, we may use the usual subscript notation of italics for the name and subscripts and lowercase letters for the subscripts as indicated above by the @ and n, The former notation follows the practice of computer-oriented texts whereas the latter notation follows the practice of mathematics in print.Dota Structures (© cay ate Ste Example 1.2 mun See “ames of six students is pictured in Fig. 1.1. A linear array STUDENT consisting of the oe aie edie Gold, and so on. Here STUDENT[1] denotes John Brown, STUDENT[2| ‘STUDENT STUDENT 1 | John Brown Sandra Gold Tom Jones June Kelly Mary Reed oanen Alan Smith Fig. 1.1 Linear arrays are called one-dimensional arrays because each element in such an array is referenced by one subscript. A two-dimensional array is a collection of similar data elements where each element is referenced by two subscripts. (Such arrays are called matrices in mathematics, and tables in business applications.) Multidimensional arrays are defined analogously. Arrays will be covered in detail in Chapter 4, | | | Example 1.3 A chain of 28 stores, each store having 4 departments, the nearest dollar) as in Fig. 1.2. Such data can be sto two-dimensional array in which the first subscript deno Subscript the department. If SALES is the name given SALES[1, 1] = 2872, SALES[1, 2] = 805, may list its weekly sales (to red in the computer using a tes the store and the second to the array, then SALES(1, 3] = 3211, ..., SALES[28, 4] = 982 Dept ] Store 1 2 3 3 2872 05 3211 2 2196 | 1223 | ago5 9287 | 1017 | 3686 28 2618 | oat 2393 Fig. 1.2Introduction and Overview 115 i Size of this array is denoted by 28 x 4 (read 28 by 4), since it contains 28 rows (the horizontal tines of numbers) and 4 columns (the vertical lines of numbers). Linked Lists Linked lists will be introduced by means of an example, Suppose a brokerage firm maintains a file where each record contains a customer's name and his or her salesperson, and suppose the file contains the data appearing in Fig, 1.3. Clearly the file could be stored in the computer by such a table, i.e., by two columns of nine names. However, this may not be the most useful way to store the data, as the following discussion shows, Customer | Salesperson 1 |” Adams Smith 2 | Brown Ray 3 | Clark Jones 4 | Drew Ray 5 | Evans Smith 6 | Farmer Jones 7 | Geller | Ray 8 Hil | Smith i 2 | intel Ray : Fig. 1.3 Another way of storing the data in Fig. 1.3 is to have a separate array for the salespeople and an entry (called a pointer) in the customer file which gives the location of each customer's salesperson. This is done in Fig. 1.4, where some of the pointers are pictured by an arrow from the location of the pointer to the location of the corresponding salesperson. Practically speaking, an integer used as a pointer requires less space than a name; hence this representation saves space, especially if there are hundreds of customers for each salesperson. Suppose the firm wants the list of customers for a given salesperson. Using the data representation in Fig. 1.4, the firm would have to search through the entire customer file. One way to simplify such a search is to have the arrows in Fig. 1.4 point the other way; each salesperson would: now have a set of pointers giving the positions of his or her customers, as in Fig. 1.5. The main disadvantage of this representation is that each salesperson may have many pointers and the set of pointers will change as customers are added and deleted. Another very popular way to store the type of data in Fig. 1.3 is shown in Fig, 1.6. Here each salesperson has one pointer which points to his or her first customer, whose pointer in tum points to the second customer, and so on, with the salesperson’s last customer indicated by a 0. This is Pictured with arrows in Fig. 1.6 for the salesperson Ray. Using this representation one can easily obtain the entire list of customers for a given salesperson and, as we will see in Chapter 5, one can easily insert and delete customers. aData Structures Ked lists, Although the ter {0 use the term “pointer” when # Customer | _ Pointer 1 Adams: 3 2 Brown 2 3 Clark 1 4 [Drew 2 5 | Evans 3 6 Farmer 1 7 Geller 2 [ni 3 9 Inteld 2 Fig. 1.4 Salesperson Pointer 1) dones | 3.6 2| Ray | 2.47.9 3 Smith” 1, 58 | Fig. 1.5 [customer | Link Salesperson | Pointer 1 Adams 5 Jones 3 2 | Brown 4 | |_ Fey 2 3 | Clark 6 ) Smith 1 4 [drew 7 5 Evans 8 s | Famer | 0 7 | Geter ° 8 Hill 0 ) 9 | neta 0 Fig. 1.6 The representatio i . “pointer” find “link re usualy use Sanya sample of lin clement in one list points to an element in a different ees case when an element in a list points to an elemas et Uist and ent in th; to reserve th “tink” for ti | at same list. ie term “link’ { LIntroduction and Overview ] Trees Data frequently contain a hierarchical relationship between various elements. The data structure which reflects this relationship is called a rooted tree graph or, simply, a tree. Trees will be defined and discussed in detail in Chapter 7. Here we indicate some of their basic properties by means of two examples. Example 1.4 Record Structure Although a file may be maintained by means of one or more arrays, a record, where ‘one indicates both the group items and the elementary items, can best be described by means of a tree structure. For example, an employee personnel record may contain the following data items: Social Security Number, Name, Address, Age, Salary, Dependents However,-Name may be a group item with the subitems Last, First and MI (middle initial), Also, Address may be a group item with the subitems Street address and Area address, where Area itself may be a group item having subitems City, State and ZIP code number. This hiera-chical structure is pictured in Fig. 1.7(a). Another way of picturing such a tree structure is in terms of levels, as in Fig. 1.7(b). Example 1.5 Algebraic Expressions Consider the algebraic expression (2x + y)(a - 76)? Using a vertical arrow (1) for exponentiation and an asterisk (*) for multiplication, we can represent tile expression by the tree in Fig. 1.8, Observe that the order in which the operations will be performed is reflected in the diagram: the exponentia- tion must take place after the subtraction, and the multiplication at the top of the tree must be executed last. There are data structures other than arrays, linked lists and trees which we shall study, Some of these structures are briefly described below. (a) Stack. A stack, also called a last-in first-out (LIFO) system, is a linear list in which insertions and deletions can take place only at one end, called the top. This structure is similar in its operation to a stack of dishes on a spring system, as pictured in Fig, 1.9(a). Note that new dishes are inserted only at the top of the stack and dishes can be deleted only from the top of the stack. « (b) Queue. A queue, also called a first-in first-out (FIFO) system, is a linear list in which deletions can take place only at one end of the list, the “front” of the list, and insertions can take place only at the other end of the list, the “rear” of the list. This structure operates in() ee Y iy Age Salary Dependents men TN, ok, S cast First MI Steet AfQQ 01 Employee (02 Social Security Number 02 Name 03 Last 03 First 03 Middle Initial 02 Address 03 Street 03 Area 04 city 04 State ce Age 2 02 Salary 02 Dependents (0) Fig. 1.7Introduction and Overview mm all (2) Stack of dishes | (b) Queue waiting for a bus Boston Los Angoles « —_\ (c) Ainine fights Fig. 1.9 Miami Remark: Many different names are used for the elements of a data structure. Some commonly used names are “data element,” “data item,” “item aggregate,” “record,” “node” and “data object.” The particular name that is used depends on the type of data structure, the context in which the Structure is used and the people using the name. Our preference shall be the term “data clement,” but we will use the term “record” when discussing files und the term “node” when discussing linked lists, trees and graphs. 1.4 DATA STRUCTURE OPERATIONS ‘The data appearing in our data structures are processed by means of certain operations. In fact, the particular data structure that one chooses for a given situation depends largely on the frequency With which specific operations are performed. This section introduces the reader to some of the most frequently used of these operations. ‘The following four operations play a major role in this text: (1) Traversing: Accessing each record exactly once so that certain items in the record may be processed, (This accessing and processing is sometimes called “visiting” the record.) (2) Searching: Finding the location of the record with a given key value, or finding the locations of all records which satisfy one or more conditions. (3) Inserting: Adding a new record to the structure. (8) Deleting: Removing 2 record from the structure. Sometimes two or more of the operations may be used in a given situation; e.g., we may want to delete the record with a given key, which may mean we first need to search for the location of the recor)ay) pata Structures js will also be considered: in speci jtuations, ‘The following two operations, which are used i rabedcaly acording to sone (4) Sorting: Arranging the records in some logical order (@E~ EPL 2. such as social security NAME Key, or in numerical order according t0 some number or account number) : (2) Merging: Combining the records in two di n, will be discusse’ ferent sorted files into # single sorted file ‘ dj later in the text. Other operations, e.g. copying and concatenatio Example 1.6 fle in whi ins the An organization contains a membership file in which each record contain: following data for a given member: Name, Address, Telephone Number, Age, Sex (a) Suppose the organization wants to announce a meeting through a mailing. Then one would traverse the file to obtain Name and Address for each member. (b) Suppose one wants to find the names of all members living in a certain area. Again one would traverse the file to obtain the data. (c) Suppose one wants to obtain Address for a given Name. Then one would search the file for the record containing Name. | (4) Suppose a new person joins the organization. Then one would insert his or her record into the file. (e) Suppose 2 member dies. Then one‘would delete his or her record from the file. (f) Suppose a member has moved and has a new address and telephone number. Given the name of the member, one would first need to search for the record in the file. Then one would perform the “update”—i.e., change items in the record with the new data. ‘Suppose one wants to find the ni 7 Oe the fle counting such memaec, ePets 65 oF older. Again one would 1.5 ALGORITHMS: COMPLEXITY, TIME-SPACE TRADEOFF (an algorithm is a well-defined list of steps for sotvin n algori apa . this text is to develop efficient algorithms for the procentng a Problem) One major purpose of uses are two major ineasures of the efficiency of an algorithm She data. The time and space t the function which gives the running time endfor spaq he complexity of an algorithm is complexity will be treated in Chapter 2.) © m terms of the input size. (The notion of vice versa. We illustrate these ideas with tw: ime 0 examples, "ded for processing the data,Introduction and Overview 1.11 Searching Algorithms Consider a membership file, as in Example 1.6, in which each record contains, among other data, the name and telephone number of its member. Suppose we are given the name of a member and ‘we want to find his or her telephone number. One way to do this is to linearly search through the file, i.e., to apply the following algorithm: Linear Search Search each record of the file, one at a time, until finding the given Name and hence the corresponding telephone number. First of all, it is clear that the time required to execute the algorithm is proportional to the number of comparisons. Also, assuming that each name in the file is equally likely to be picked, it is intuitively clear that the average number of comparisons for a file with n records is equal to n/2; that is, the complexity.of the linear search algorithm is given by CDQ = 1/2. The above algorithm would be impossible in practice if we were searching through a list consisting of thousands of names, as in a telephone book. However, if the names are sorted alphabetically, as in telephone books, then we can use an efficient algorithm called binary search. This algorithm is discussed in detail in Chapter 4, but we briefly describe its general idea below Binary Search Compare the given Name with the name in the middle of the list; this tells which half of the list contains Name. Then compare Name with the name in the middle of the correct half to determine which quarter of the list contains Name, Continue the process until finding Name in the list. ‘One can show that the complexity of the binary search algorithm is given by C(n) = logy n Thus, for example, one will not require more than 15 comparisons to find a given Name in a list containing 25 000 names. Although the binary search algorithm is a very efficient algorithm, it has some major drawbacks Specifically, the algorithm assumes that one has direct access to the middle name in the list or a Sublist, This means that the list must be stored in some type of array. Unfortunately, inserting an element in an array requires elements to be moved down the list. and deleting an element from an array requires element to be moved up the list. ‘The telephone company solves the above problem by printing a new directory every year while keeping a separate temporary file for new telephone customers. ‘That is, the telephone company updates its files every year. On the other hand, a bank may want to insert a new customer in its file ‘almost instantaneously. Accordingly, a linearly sorted list may not be the best data structure for a bank. An Example of Time-Space Tradeeff Suppose a file of records contains names. social security numbers and much additional information mong its fields. Sorting the file alphabetically and rising a binary search is a very efficient way toCee en Sot only the social s we are given ec her hand, SUPPOS® the record, which is extrem find the record for a given name. On the ot Finear search £0 number of the person. Then we would have t© doa tow can we solve such a problem? One w, mber of records: ding tO social security number, Thi, time-consuming for a very large nw is to have another file which is so however, would double the space req is to have the main file sorted numerically ial with. only two columns, the first column comtainin® vs og second column containing pointers which give the locations ol main file. This is one way of solving the problem that is used mal for the amount 0! ly acco! ried numerically 8°07 other way. Pictured in Fig, | 1g ited for soring Oeity i amber and to have an auxiliary ary by soci abetized list of the names and Ms the corresponding records inti, frequently, since the additiony f extra information it provides space, containing only two columns, is mini Name Pointer ‘Soc. Sec. NO Name Extra Data 1 |iaber-cresoy] 2 a fyrzacsens [ome Ear! | X200000000000%8 2 [Brown.aonn | 4 | tones er98| ABbex, Greeny | 1000020000000. 3 (Carey. Mary | 546 +g [027-73-0961 |Lane, Ali THK KKK 4 [Davis, Ea 7 1 rrae2-9405 [Brown, ohn | XX000AXXXXXXXX [ets susan | 76 sg 182-74-6098 | Smith, Mary | XXXXXXXXXXXXXX J ‘Aaxlary array sorted alphabetically Main file sorted by social security number Fig. 1.10 Remark: Suppose 2 file is sorted numerically by . inserted into the y social security m ao nner ce the address of each reencd egmovement of data is to hi er ee reaordy are inserted, But there Would be inane oY OUl there be ave the social secur instant access to any record movement of daa wt ywever, this metIntroduction and Overview 13 JP He) =I RV} Basic Terminology 1 12 13 14 A professor keeps a class list containing the following data for each stude: Name, Major, Student Number, Test Scores, Final Grade (a) -State the entities, attributes and entity set of the list. (b) Describe the field values, records and file. (©) Which attributes can serve as primary keys for the list? (a) Each student is an entity, and the collection of students is the entity set. The properties, name, major, and so on, of the students are the attributes. (b) The field values are the values assigned to the attributes, i.e., the actual names, test scores, and so on. The field values for each student constitute a record, and the collection of all the student records is the file. (c) Either Name or Student Number can serve as a primary key, since each uniquely determines the student’s record. Normally the professor uses Name as the primary key, but the registrar may use Student Number, A hospital maintains a patient file in which each record contains the following data: Name, Admission Date, Social Security Number, Room, Bed Number, Doctor (a) Which items can serve as primary keys? (b) Which pair of items can serve as a primary key? (©) Which items can be group items? (a) Name and Social Security Number can serve as primary keys. (We assume that no two patients have the same name.) ; (b) Room and Bed Number in combination also uniquely determine a given patient. (c) Name, Admission Date and Doctor may be group items. Which of the following data items may lead to variable-length records when included as items in the record: (a) age, (b) sex, (c) name of spouse, (d) names of children, (e) education, (f) previous employers? Since (d) and (f) may contain @ tew or many items, they may lead to variable-length records. Also, (e) may contain many items, unless it asks only for the highest level obtained. Data base systems will be only briefly covered in this text. Why? “Data base systems” refers to data stored in the secondary memory of the computer. The implementation and analysis of data structures in the secondary memory are very different fram those in the main memory of the computer. This text is primarily concerned with data structures in main memory, not secondary memory.puctures 114 __Data Struct — Data Structures and Operations »serching is c) sei - LS Give a brief description of (a) traversing, (b) sorting and ( ce (a) Accessing and processing each record exactly on (b) Arranging the data in some given order it r keys (c) Finding the location of the record with a given key or keys 1.6 Give a brief description of (a) inserting and (b) deleting. ; sicular orderin | (a) Adding a new record to the data structure, usually keeping & P2 8 (b) Removing a particular record from the data structure ‘1.7 Consider the linear array NAME in Fig. 1.11, which is sorted alphabetically. (a) Find NAME[2], NAME[4] and NAME(7] ® Suppose Davis is to be inserted into the array. How many names must be moved to new locations. (©) Suppose Gupta is to be deleted from the array. How many names must be moved to new locations? (a) Here NAME[K] is the kth name in the list. Hence, NAME(2] = Clark, NAME[4] = Gupta, NAME[7] = Pace (b) Since Davis will be assigned to NAME[3], the names Evans through Smith must be moved. Hence six names are moved. (c) The names Jones through Smith must be moved up the array. Hence four names must be moved NAME 1 | Adam Clark Evans [Gupta | [ Jones | [ tare | [ Pace | Smith_| figure determine a linear order a Hg. 1.12. The van first name in the li with O denoting the ead oft nage the Toca FIRST gives the location of * Find the linear ordering = name following NAMEU ordering of the ing names,19 Introduction and Overview - FIRST NAME LINK 5 1 | Rogers 7 2| Clark 8 3 4| Hansen 10 5 | Brooks 2 6 | Pin 1 7 | Walker oO al Fisner | 4 40 | Leary 6 Fig. 1.12 The ordering is obtained as follows: FIRST = 5, so the first name in the list is NAME[5|. which is Brooks. LINK(5] = 2, so the next name iy NAME| LINK(2] = 8, so the next name is NAME[8}. whieh is Fisher LINK{8] = 4. so the next maine is NAME[4]. which is Hansen. LINK[4] = 10, so the next name is NAME[I0), which is Leary LINK{10] = 6, so the next name is NAME[6]. which is Pitt , so the next name is NAME|1], which is Rogers. so the next name is NAME[7], which is Walker. |, which indicates the end of the list. Thus the linear ordering of the names is Brooks, Clark, Fisher, Hansen, Leary, Pitt, Rogers, Walker. Note that this is the alphabetical ordering of the names. LINK(6] LINK{1] = LINK(7] Consider the algebraic expression (7x + y\(Sa — 6)’. (a) Draw the corresponding tree. diagram as in Example 1.5. (b) Find the scope of the exponential operation. (The scope of ‘anode v ina tree is the subtree consisting of v and the nodes following v.) fa) Use a vertical arrow (7) for exponentiation and an asterisk (*) for multiplication to obtain the tree in Fig. 1.13 |. which is Clark, Fig. 1.13Structures, e ata SO ; the subtree circled in the diagram, 4, t (b) The scope of the exponentiation operation" corresponds to the expression (Sa ~ b ) ncused in Bam bers as discuss amy 1.10 ‘The following is a tree structure given by means of level num! me ad rtime 02 R: O1 Employee 02 Name 02 Number 02 Hours 03 Regular 03 Ove ate Draw the corresponding tree diagram. is the essor of th ‘The tree diagram appears in Fig. 1.14. Here euch node v is the successor of the node which precedes v and has a lower level number than ¥. Employee Name Number / Rate Regular Overtime Fig. 1.16 1.11 Discuss whether a stack or a queue is the appropriate structure for determining the order in which elements are processed in each of the following situations. (a) Batch computer programs are submitted to the computer center. (b) Program A calls subprogram B, which calls subprogram and so on (©) Employees havea contrat which calls for a seniority system for hiring and fing. (a) Queue. Excluding priority cases, basis. Stack. The last subprogram is executed first, ana j 2 st, and its res, to-last program. which s then executed, and spp nestlts ME transferred to the next executed, . om, until the original calling program is ) Stack. In a seniority system, the last o be hired S the first to be d . e is the tt Programs are executed on a first come, first served (b) sah aly tons iischarged 2 y flights of an airline company appear in rc: ppear in Fj ; i K] and DI wD ‘ig. 1.15, iT Girected because the flight numbers repent, “TE Braph of the dae Crt goph e lumbers represent flights f the data. (The grap returning.) TOM one city to another but not The nodes of the graph are th is a flight from A to B, and lal appears in Fig. 1.16. le five cities. Dra bel the arrow with e arrow from city A to city B if there ve Aight number. The directed gr2PIntroduction and Overview 117 orry NUMBER ORIG _ DEST 1 | Atlanta 1{ 701 2 3 2 | Boston 2/1 w02 3 2 3 | Chicago 3 705 5 3 4 | Miami 4[ 708 3 4 5 | Philadelphia s{ 71 2 5 (@) 6/72 s | 2 7/73 5 1 s[ 75 1 4 s[ nz 5 | 4 1o{ 718 «fos ©) Fig. 1.15 701 ¢ Boston Ts me | 7 4 aceon \ Fig, 1.16 Complexity; Space-Time Tradeoffs 1.13 Briefly describe the notions of (a) the complexity of an algorithm and (b) the space-time tradeoff of algorithms. (a) The complexity of an algorithm is a function jin) which measures the time and/or space used by an algorithm in terms of the input size n. (b) The space-time tradeoff refers to a choice between algorithmic solutions of a data processing problem that allows one to decrease the running time of an algorithmic solution by increasing the space to store the data and vice versa1 1.44 Suppose a dataset $ contains melee ss soethim with the running time 7; oni ii) n = 10 000. 2 (a) Compare the running time Ty A) n = 1000 and (ii) = | " 4 thm when (i) . linked list. ofthe binary a sven i in S when S is stored a5 & | (b) Discuss searching for a given iten + the linear search algorithm isn) = ny Za) Recall (See. 15) tat the expected earning Of IPE NTT Cty, (i) For m= 1000, 7,5 Fecal ee aay earch algorithm 180) = !OB3 S00 but Ts =logs 10 OM 500 but T, = log, 1000 = 10; and (ii) for n = nA t jrectly access the middle el : directly access t Jement in fb) The binary search algorithm assumes that one CoP ; Ore Pinecone cannot directly access the middle element 10 4 linked list. Hence o it ; js stored as a linked list. may have to use a linear search algorithm when 5 is St 1.15 Consider the data in Fig. 1.15, which gives the different flights of an eine Discus different ways of storing the data so as to decrease the time in executing the following: i ‘gi i ight, gi flight number. (@) Find the origin and destination of a flight, given the , (b) Given city A and city B, find whether there is a flight from A to B, and if there is, find its flight number. (a) Store the data of Fig. 1.15(b) in arrays ORIG and DEST where the subscript is the fligh number, as pictured in Fig. 1.17(a). (b) Store the data of Fig. 1.15(b) in a two-dimensional array FLIGHT where FLIGHT, Xl contains the flight number of the flight from CITY(J] to CITY[K], or contains 0 whet there is no such flight. as pictured in Fig. 1.17(b). ORIG «DEST ~— FLIGHT Fig. a7Introduction and Overview 9 1.16 Suppose an airline serves n cities with s flights. Discuss drawbacks to the data representations used in Fig. 1.17(a) and Fig. 1.17(b). (a) Suppose the flight numbers are spaced very far apart; i.e. suppose the ratio of the number s of flights to the number of memory locations is very small, e.g. approximately 0.05. Then the extra storage space may not be worth the expense. (b) Suppose the ratio of the number s of flights to the number of memory locations in the array FLIGHT is very small, i.e. that the array FLIGHT is one that contains a large number of zeros (such an array is called a sparse matrix). Then the extra storage space may not be worth the expense.Chapter Two Preliminaries 2.1 INTRODUCTION ‘The development of algorithms for the creation and processing of data structures is a major feature of this text. This chapter describes, by means of simple examples, the format that will be used to present our algorithms. The format we have selected is similar to the format used by Knuth in his Well-known text Fundamental Algorithms. Although our format is language-free, the algorithms will be sufficiently well structured and detailed that they can be easily translated into some pro- gramming language such as Pascal, FORTRAN, PL/I or BASIC. In fact, some of our algorithms will be translated into such languages in the problems sections. ‘Algorithms may be quite complex. The computer programs implementing the more complex algorithms can be more easily understood if these programs are organized into hierarchies of modules similar to the one in Fig, 2.1. In such an organization, each program contains first a main module, which gives a general description of the algorithm; this main module refers to certain submodules, which contain more detailed information than the main module; each of the submodules may refer to more detailed submodules; and so on. The organization of a program into such a hierarchy of modules normally requires the use of certain basic flow patterns and logical structures which are usually associated with the notion of structured programming. These flow patterns and logical structures will be reviewed in this chapter. The chapter begins with a brief outline and discussion of various mathematical functions which occur in the study of algorithms and in computer science in general, and the chapter ends with a discussion of the different kinds of variables that can appear in our algorithms and programs. The notion of the complexity of an algorithm is also covered in this chapter. This important measurement of algorithms gives us a tool to compare different algorithmic solutions to a particularES module LO Cc) Co | Fig. 2.1. A Hierarchy of Modules problem such as searching or sorting. The concept of an algorithm and its complexity is fund: not only to data structures but also to almost all areas of computer science. 2.2 MATHEMATICAL NOTATION AND FUNCTIONS | | This section gives various mathematical functions which appear very often in the analysisd algorithms and in computer science in gen: eral, together with their notation. Floor and Ceiling Functions Let x be any real number. Then x lies by i tine ot Specifically, es Between two integers called the floor and the ceiling o# Lil, called the floor of x, denotes the greatest integer that [x], called the ceiling of x, denotes the le If x is itself an integer, then Lx] = [x], " does not exceed x, SSt integer that is not less than x otherwise Lr} 4 | = Px. Example 2,1 [3.14] = 3, LV5] - 2 (-8.5] 2 [3.14] Ve lle? Ts -8, 7).Preliminaries 2.3 Remainder Function; Modular Arithmetic Let k be any integer and let M be a positive integer. Then k (mod M) (read k modulo M) will denote the integer remainder when k is divided by M. More exactly, * (mod M) is the unique integer r such that k=Mq+r where O
1, we have n! = n-(n - 1)! Hence 5i=5-4!=5-24= 120; 6 = 6-5! 6-120 = 720 Permutations A permutation of a set of n elements is an arrangement of the elements in a given order. For example, the permutations of the set consisting of the elements a, 6, c are as follows: abe, ach, bac, bea, cab, cba One can prove: There are n! permutations of a set of n elements, Accordingly, there are 4! = 24 permutations of a set with 4 elements, 5! = 120 permutations of a set with $ elements, and so on. Exponents and Logarithms Recall the following definitions for integer exponents (where m is a positive integer): ote Lb a™ - Exponents are extended to include all rational numbers by defining, for any tational number m/n, amt = Ya" =(Vay” a"=a-a--a(mtimes), a For example, Lo 23 2 52 16, 24s =, 125% = $= 2 2 16, Y “16 5 | In fact, exponents are extended to include all real numbers by defining, for any real number x, a= lim a’ where ris a rational number Accordingly, the exponential function f(x) = a” is defined for all real numbers. Logarithms are related to exponents as follows. Let b be a positive number. The logarithm of any positive number x to the base b, written log, x represents the exponent to which & must be raised to obtain x. That is, yelogyx and =x are equivalent statements. Accordingly, log, 8=3 since 2=8; logy 100=2 since logy 64= 6 since 2° = 64; logyq 0.001 sinceEE at Struct 2.6 — Furthermore, for any base 6, gt log, 1=0 since > 5 log, b= 1 since b= rithm of 0 2 The logarithm of a negative number and the log: mic functions ‘One may also view the exponential and logarit ‘ flay = bi and (2) = IB 7 aphs 0 as inverse functions of each other. Accordingly. the BraP Solved Problem 2.5.) ‘ ues, For example, using tables Frequently, logarithms are expressed using approximate val calculators, one obtains 0 are not defined. ese two functions are related. (4 logy 300 = 2.4771 and log, 40 = 3.6889 | ‘as approximate answers. (Here ¢ = 2.718281 ---.) | Logarithms to the base 10 (called common logarithms), logarithms to the vase ¢ (called natura logarithms) and logarithms to the base 2 (called binary logarithms) are of special importance, Some texts write: Inx instead of log, x IgxorLogx instead of logy x This text on data structures is mainly concerned with binary logarithms. Accordingly, The term log x shall mean log, x unless otherwise specified Frequently, we will require only the floor or the ceiling of a binary 1 rit this can obtained by looking at the powers of 2. For example, . » logarithm. This Log 100]=6 since 26 = 64 2 = 128 Tog, 1000] = 8 Be 9 since 2°=512 and 2° = 1024 and so on. 2.3 ALGORITHMIC NOTATION iF thm, intuitive fg. ‘. caving pacar protien ae FE sep-by. step it Turing machine or ts equivaient ig ne tition of an jut, Of Well-defined instructions section describes the format that is ned Sophisticated and lie te Which uses the notion notation is best described by meang omen algorithms through the scope of this text les, ghout the text. This algot Example 2.4 An array DATA of i and the value MAK othe ag MOry. We ‘ . . DATA, one way to solve the prone’ a oF OkTa, chet to find the totation LOC Ollows: no other information aboutPreliminaries 27 Initially begin with LOC = 1 and MAX = DATA[1]. Then compare MAX with each successive element DATA[K] of DATA. If DATA[K] exceeds MAX, then update LOC and MAX so that LOC = K and MAX = DATA[K]. The final values appearing in LOC and MAX give the location and value of the largest element of DATA. A formal presentation of this algorithm, whose flow chart appears in Fig. 2.2, follows. Algorithm 2.1: (Largest Element in Array) A nonempty array DATA with N numeri- cal values is given. This algorithm finds the location LOC and the value MAX of the largest element of DATA. The variable K is used as a counter, Step 1. [Initialize.] Set K := 1, LOC : = 1 and MAX : = DATA]. Step 2. [Increment counter.] Set K: = K + 1. Step 3. [Test counter.] If K > N, then: Write: LOC, MAX, and Exit. Step 4. [Compare and update.| If MAX < DATA[K], then: Set LOC : = K and MAX : = DATAK]. Step 5. [Repeat loop.] Go to Step 2. Start Ket Loce1 MAX« DATAI1] KeKst Yo IsK>N? S| write:Loc, Max DATAIK]? Yes LoceK MAX«-DATAIK] Fig. 2.2pata Structures m two parts. The first p._. apm consists of tw! , Pan tion of an algorithm Fr the variables which oocgy i,t The format for the formal presenel "gorithm, ident nm consists of the list of steps paragraph which tells the purpose o con of the algor ty algorithm and lists the input data. The s&* is to be executed. . The following summarizes certain Co! Some control structures will be covered in the n® Identifying Number iyi foll sth is assi identifying number as fol Each algorithm is assigned an identifying mu i algorithm in Chapter 4; Algorithm P5.3 refers to ina Note that the letter “P” indicates that the algorithm appears ji i ing sons that we will Use 1 resenting OUr algriy nventio xt section. ows: Algorithm 4.3 refers to the ay fim in Solved Problem 5.3 in Chapt problem. Steps, Control, Exit The steps of the algorithm are executed one after the other, beginning with Step 1, ames nda otherwise. Control may be transferred to Step n of the algorithm. by the statement “Go to Step x} For example, Step 5 transfers control back to Step 2 in Algorithm 2.1. Generally speaking, thy Go to statements may be practically eliminated by using certain control structures discussed in next section. If several statements appear in the same step, €.g., Set K := 1, LOC := 1 and MAX := DATA[I]. then they are executed from left to right. The algorithm is completed when the statement Exit, is encountered. This statement is similar to the STOP statement used in FORTRAN and in flowehsl Comments Each step may contain a comment in bracl kets which indi comment will usually appear atthe beginning go tustiicates, i the mai sep. ing oF the end of the secon PUTPOSe OF the SP . step, Variable Names Variable names will use capital lette used as counters or subscripts will al even though lowercase may be use, mathematical description and analys Sec. 1.3 of Chapter 1, under “Array. Assignment Statement TS, as in MA; . IS0 be capitaiegan DATA. Single-tetter names of vi d for these sand i the algorithms (K and N, for et! is. (Recall the digeleS (& and n) in the accompél i ay “Ssion of italic and lowercase sym Our assignment statements will use the dot ‘equal nota, tation "= that j # Max := p, ATAU ‘hat is used in Pascal. ForPreliminaries (2s assigns the value in DATA(1] to MAX. Some texts use the backward arrow < or the equal sign = for this operation Input and Output Data may be input and assigned to variables by means of a Read statement with the following form: Read: Variables names. Similarly, messages, placed in quotation marks, and data in variables may be output by means of @ Write or Print statement with the following form: Write; Messages and/or variable names. Procedures The term “procedure” will be used for an independent algorithmic module which solves a particular problem. The use of the word “procedure” or “module” rather than “algorithm” for a given problem is simply a matter of taste. Generally speaking, the word “algorithm” will be reserved for the solution of general problems. The term “procedure” will also be used to describe a certain type of subalgorithm which is discussed in Sec. 2.6. 2.4 CONTROL STRUCTURES Algorithms and their equivalent computer programs are more easily understood if they mainly use self-contained modules and three types of logic, or flow of control, called (1) Sequence logic, or sequential flow (2) Selection logic, or conditional flow (3) Iteration logic, or repetitive flow ‘These three types of logic are discussed below, and in each case we show the equivalent flowchart. Sequence Logic (Sequential Flow) Sequence logic has already been discussed. Unless instructions are given to the contrary, the modules are executed in the obvious sequence. The sequence may be presented explicitly, by means of numbered steps, or implicitly, by the order in which the modules are written. (See Fig. 23) Most processing, even of complex problems, will generally follow this elementary flow pattern. Selection Logic (Conditional Flow) Selection logic employs a number of conditions which: lead to a selection of one out of several
You might also like
DSA Pattern Wise Product - Parikh Jain
PDF
No ratings yet
DSA Pattern Wise Product - Parikh Jain
37 pages
Data Structures With C - by Schaum Lipschutz
PDF
78% (9)
Data Structures With C - by Schaum Lipschutz
289 pages
Padma Reddy - Data Structures and Applications - A Simple and Systematic Approach
PDF
90% (10)
Padma Reddy - Data Structures and Applications - A Simple and Systematic Approach
613 pages
NPTEL SE Model Question Paper Set 2
PDF
80% (5)
NPTEL SE Model Question Paper Set 2
17 pages
PRG10.Multi Threading in T24-R13
PDF
No ratings yet
PRG10.Multi Threading in T24-R13
32 pages
Web Application Security Audit Report
PDF
100% (1)
Web Application Security Audit Report
23 pages
Weekly Quiz 2 (AS) - PGPBABI.O.OCT19 Advanced Statistics - Great Learning PDF
PDF
No ratings yet
Weekly Quiz 2 (AS) - PGPBABI.O.OCT19 Advanced Statistics - Great Learning PDF
5 pages
Fundamentals of Data Structures in C by Ellis Horowitz, Sartaj Sahni, Susan Anderson-Freed
PDF
80% (10)
Fundamentals of Data Structures in C by Ellis Horowitz, Sartaj Sahni, Susan Anderson-Freed
605 pages
Distributed Databases - Princip - Ceri, Stefano, 1955
PDF
57% (7)
Distributed Databases - Princip - Ceri, Stefano, 1955
426 pages
Discrete Mathematical Structures With Applications To Computer Science by J.P. Tremblay, R. Manohar PDF
PDF
61% (112)
Discrete Mathematical Structures With Applications To Computer Science by J.P. Tremblay, R. Manohar PDF
510 pages
BCS304-DSA Notes M-5
PDF
100% (1)
BCS304-DSA Notes M-5
22 pages
FAFL Padma Reddy1
PDF
100% (2)
FAFL Padma Reddy1
130 pages
Data Structure Book - Schaum Series
PDF
100% (2)
Data Structure Book - Schaum Series
139 pages
(DBMS) Database Management System Text Book
PDF
No ratings yet
(DBMS) Database Management System Text Book
296 pages
Dbms Solved Paper
PDF
0% (1)
Dbms Solved Paper
18 pages
Sunstar
PDF
29% (7)
Sunstar
124 pages
Classic Data Structures by D. Samanta
PDF
50% (2)
Classic Data Structures by D. Samanta
99 pages
Chat Application
PDF
100% (1)
Chat Application
20 pages
A Practical Approach To Data Structures and Algorithms-1
PDF
No ratings yet
A Practical Approach To Data Structures and Algorithms-1
573 pages
DS Important Questions
PDF
100% (2)
DS Important Questions
5 pages
Fundamentals of Computers: Reema Thareja
PDF
100% (1)
Fundamentals of Computers: Reema Thareja
34 pages
Chapter 3
PDF
60% (5)
Chapter 3
32 pages
Notes On Data Structures and Algorithms: Dr. Anindita Kundu
PDF
No ratings yet
Notes On Data Structures and Algorithms: Dr. Anindita Kundu
64 pages
IDMC Best Practices and Standards
PDF
100% (1)
IDMC Best Practices and Standards
27 pages
Data Structures With C - by Schaum Series 2
PDF
No ratings yet
Data Structures With C - by Schaum Series 2
554 pages
Measures of Central Tendency Grouped Data
PDF
No ratings yet
Measures of Central Tendency Grouped Data
8 pages
Let Us C Yashwant Kanetkar PDF
PDF
100% (1)
Let Us C Yashwant Kanetkar PDF
107 pages
DST Nirali Publication
PDF
No ratings yet
DST Nirali Publication
85 pages
CBNST Notes For BCA PU 3rd Sem Based On Syllabus PDF
PDF
100% (1)
CBNST Notes For BCA PU 3rd Sem Based On Syllabus PDF
27 pages
Let Us C Book
PDF
No ratings yet
Let Us C Book
357 pages
Blockchain Merged
PDF
No ratings yet
Blockchain Merged
71 pages
Zero Lecture DSA
PDF
No ratings yet
Zero Lecture DSA
43 pages
DS Book
PDF
No ratings yet
DS Book
375 pages
Lab Manual Dbms
PDF
100% (1)
Lab Manual Dbms
58 pages
Programming in C: Press
PDF
100% (2)
Programming in C: Press
27 pages
Computer Concepts and C Programming Unit 12310CCP13 by Sushma Shetty PDF
PDF
No ratings yet
Computer Concepts and C Programming Unit 12310CCP13 by Sushma Shetty PDF
130 pages
DSA BCA Final PRO
PDF
No ratings yet
DSA BCA Final PRO
205 pages
Problem Statement
PDF
No ratings yet
Problem Statement
1 page
Ddco Cse Manual
PDF
50% (2)
Ddco Cse Manual
100 pages
Done Classic - Data - Structures - by - D. - Samanta PDF
PDF
No ratings yet
Done Classic - Data - Structures - by - D. - Samanta PDF
99 pages
(2023-24) BCS304 (Dsa) (M-1) - 1
PDF
No ratings yet
(2023-24) BCS304 (Dsa) (M-1) - 1
38 pages
Important Questions in C++
PDF
50% (2)
Important Questions in C++
1 page
Dsa PDF
PDF
No ratings yet
Dsa PDF
293 pages
Dsa Get Set Go
PDF
No ratings yet
Dsa Get Set Go
93 pages
Practical File: Database Management System
PDF
No ratings yet
Practical File: Database Management System
27 pages
BCA II Sem Digital Electronics
PDF
100% (1)
BCA II Sem Digital Electronics
33 pages
DBMS Important Questions Unit Wise
PDF
100% (1)
DBMS Important Questions Unit Wise
4 pages
C Imp Questions
PDF
100% (1)
C Imp Questions
5 pages
BCS304-Module 3 Notes (Sowmya)
PDF
100% (1)
BCS304-Module 3 Notes (Sowmya)
6 pages
Dsa Part 2
PDF
No ratings yet
Dsa Part 2
18 pages
SQL Subtotal Operators: Lesson 4: GROUPING SETS Operator
PDF
No ratings yet
SQL Subtotal Operators: Lesson 4: GROUPING SETS Operator
8 pages
Therotical Computer Science Book
PDF
No ratings yet
Therotical Computer Science Book
285 pages
Unit Wise Important Questions
PDF
83% (12)
Unit Wise Important Questions
11 pages
Course: Teacher Education in Pakistan (829) Level: M.A / M. Ed Semester: Autumn 2018 Assignment No. 2
PDF
100% (1)
Course: Teacher Education in Pakistan (829) Level: M.A / M. Ed Semester: Autumn 2018 Assignment No. 2
16 pages
Data Structures and Applications Questions From Old VTU Question Papers
PDF
100% (1)
Data Structures and Applications Questions From Old VTU Question Papers
4 pages
BCS304-DSA Notes M-3
PDF
No ratings yet
BCS304-DSA Notes M-3
61 pages
Distributed DBMS Reliability: Presented by (Team7) : Yashika Tamang Spencer Riner
PDF
No ratings yet
Distributed DBMS Reliability: Presented by (Team7) : Yashika Tamang Spencer Riner
51 pages
Family Tree Heritage Gold 2022 Crack Serial Keygen
PDF
No ratings yet
Family Tree Heritage Gold 2022 Crack Serial Keygen
1 page
CS3311-Data Structures Model Lab QP Print (Set-1)
PDF
100% (1)
CS3311-Data Structures Model Lab QP Print (Set-1)
2 pages
Analysis and Designs of Algorithms: BCS401 Model Question Paper With Effect From 2023-24 (CBCS Scheme)
PDF
0% (2)
Analysis and Designs of Algorithms: BCS401 Model Question Paper With Effect From 2023-24 (CBCS Scheme)
2 pages
DWM Unit 5 Mining Frequent Patterns and Cluster Analysis
PDF
100% (1)
DWM Unit 5 Mining Frequent Patterns and Cluster Analysis
15 pages
BCS304-DSA Notes M-2
PDF
100% (2)
BCS304-DSA Notes M-2
50 pages
Relational Database Design: Practice Exercises
PDF
0% (1)
Relational Database Design: Practice Exercises
6 pages
PowerProtect Data Manager Troubleshooting - Participant Guide
PDF
No ratings yet
PowerProtect Data Manager Troubleshooting - Participant Guide
45 pages
Reema Thareja C Programming - Chapter1 (Fundamentals of Computer)
PDF
No ratings yet
Reema Thareja C Programming - Chapter1 (Fundamentals of Computer)
27 pages
Power Bi Session Notes-1
PDF
No ratings yet
Power Bi Session Notes-1
10 pages
Sample Question Paper Data Structure Using 'C' PDF
PDF
No ratings yet
Sample Question Paper Data Structure Using 'C' PDF
5 pages
BCS304-DSA Notes M-4
PDF
No ratings yet
BCS304-DSA Notes M-4
25 pages
BCS304 Super Important - 22SCHEME
PDF
No ratings yet
BCS304 Super Important - 22SCHEME
3 pages
Melinex 1311 - UL Product Iq
PDF
No ratings yet
Melinex 1311 - UL Product Iq
2 pages
Sita1502 Customer Interface Design and Development-165-219
PDF
No ratings yet
Sita1502 Customer Interface Design and Development-165-219
55 pages
Mrudula
PDF
No ratings yet
Mrudula
4 pages
DDCO SEM III Mod 4 Notes For Sem Exam @vtunetwork
PDF
No ratings yet
DDCO SEM III Mod 4 Notes For Sem Exam @vtunetwork
29 pages
FlexiRaft - Flexible Quorums With Raft
PDF
No ratings yet
FlexiRaft - Flexible Quorums With Raft
10 pages
S - Hadoop Ecosystem
PDF
No ratings yet
S - Hadoop Ecosystem
14 pages
ASP .Net Database Connectivity Presentation
PDF
No ratings yet
ASP .Net Database Connectivity Presentation
18 pages
Dmdw-Lab Manual
PDF
No ratings yet
Dmdw-Lab Manual
61 pages
Data Structure Most Important Question All Unit
PDF
100% (1)
Data Structure Most Important Question All Unit
7 pages
Cs Project Bhumika
PDF
No ratings yet
Cs Project Bhumika
57 pages
Data Structures and Algorithms
PDF
No ratings yet
Data Structures and Algorithms
228 pages
SAP Disaster Recovery (DR) or Sandbox
PDF
No ratings yet
SAP Disaster Recovery (DR) or Sandbox
2 pages
Introductory Pages
PDF
No ratings yet
Introductory Pages
8 pages
AZ-303 and AZ-304 Links and Tips
PDF
No ratings yet
AZ-303 and AZ-304 Links and Tips
25 pages
Apex MCQ 2 From Muhammad Nur E Alam For Students
PDF
No ratings yet
Apex MCQ 2 From Muhammad Nur E Alam For Students
11 pages
DMS Assignment 1
PDF
No ratings yet
DMS Assignment 1
2 pages
Bli 224 em 2023 24 KP@9354372788
PDF
No ratings yet
Bli 224 em 2023 24 KP@9354372788
11 pages
LaTeX Lab Viva QA All Experiments
PDF
No ratings yet
LaTeX Lab Viva QA All Experiments
6 pages
IBM - IBM Watsonx - Data
PDF
No ratings yet
IBM - IBM Watsonx - Data
15 pages
Big Data Analytics r20 Supply April-2025
PDF
No ratings yet
Big Data Analytics r20 Supply April-2025
1 page