0% found this document useful (0 votes)
2 views6 pages

Code

The document is a C program that implements an array list with various functionalities including insertion, deletion, data retrieval, traversal, and searching. It defines a menu-driven interface for users to interact with the list, allowing operations at the beginning, end, or middle of the list. The program handles user input and provides feedback on the success or failure of each operation.

Uploaded by

Rock Mark
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

Code

The document is a C program that implements an array list with various functionalities including insertion, deletion, data retrieval, traversal, and searching. It defines a menu-driven interface for users to interact with the list, allowing operations at the beginning, end, or middle of the list. The program handles user input and provides feedback on the success or failure of each operation.

Uploaded by

Rock Mark
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1: #include <stdio.

h>
2:
3: #define MAX 100
4:
5: /* Function prototypes */
6: int insertbegin(int listdata[], int *listsize, int data);
7: int insertend(int listdata[], int *listsize, int data);
8: int insertmiddle(int listdata[], int *listsize, int pos, int data);
9:
10: int deletebegin(int listdata[], int *listsize);
11: int deleteend(int listdata[], int *listsize);
12: int deletemiddle(int listdata[], int *listsize, int pos);
13:
14: int getdata(int listdata[], int listsize, int pos, int *data);
15: void traverse(int listdata[], int listsize);
16: int search(int listdata[], int listsize, int data);
17:
18: int main()
19: {
20: int listdata[MAX];
21: int listsize = 0;
22: int choice;
23: int data, pos, result;
24:
25: while (1)
26: {
27: printf("\n----- ARRAY LIST MENU -----\n");
28: printf("1. Insert Begin\n");
29: printf("2. Insert End\n");
30: printf("3. Insert Middle\n");
31: printf("4. Delete Begin\n");
32: printf("5. Delete End\n");
33: printf("6. Delete Middle\n");
34: printf("7. Get Data\n");
35: printf("8. Traverse\n");
36: printf("9. Search Data\n");
37: printf("0. Exit\n");
38:
39: printf("Enter your choice: ");
40: scanf("%d", &choice);
41:
42: switch (choice)
43: {
44: case 1:
45: printf("Enter data: ");
46: scanf("%d", &data);
47:
48: result = insertbegin(listdata, &listsize, data);
49:
50: if (result == 1)
51: printf("Data inserted successfully.\n");
52: else
53: printf("List is full.\n");
54: break;
55:
56: case 2:
57: printf("Enter data: ");
58: scanf("%d", &data);
59:
60: result = insertend(listdata, &listsize, data);
61:
62: if (result == 1)
63: printf("Data inserted successfully.\n");
64: else
65: printf("List is full.\n");
66: break;
67:
68: case 3:
69: printf("Enter position: ");
70: scanf("%d", &pos);
71:
72: printf("Enter data: ");
73: scanf("%d", &data);
74:
75: result = insertmiddle(listdata, &listsize, pos, data);
76:
77: if (result == 1)
78: printf("Data inserted successfully.\n");
79: else
80: printf("Invalid position or list is full.\n");
81: break;
82:
83: case 4:
84: result = deletebegin(listdata, &listsize);
85:
86: if (result == 1)
87: printf("First element deleted.\n");
88: else
89: printf("List is empty.\n");
90: break;
91:
92: case 5:
93: result = deleteend(listdata, &listsize);
94:
95: if (result == 1)
96: printf("Last element deleted.\n");
97: else
98: printf("List is empty.\n");
99: break;
100:
101: case 6:
102: printf("Enter position: ");
103: scanf("%d", &pos);
104:
105: result = deletemiddle(listdata, &listsize, pos);
106:
107: if (result == 1)
108: printf("Element deleted successfully.\n");
109: else
110: printf("Invalid position or list is empty.\n");
111: break;
112:
113: case 7:
114: printf("Enter position: ");
115: scanf("%d", &pos);
116:
117: result = getdata(listdata, listsize, pos, &data);
118:
119: if (result == 1)
120: printf("Data = %d\n", data);
121: else
122: printf("Invalid position.\n");
123: break;
124:
125: case 8:
126: traverse(listdata, listsize);
127: break;
128:
129: case 9:
130: printf("Enter data to search: ");
131: scanf("%d", &data);
132:
133: result = search(listdata, listsize, data);
134:
135: if (result != -1)
136: printf("Data found at position %d.\n", result);
137: else
138: printf("Data not found.\n");
139: break;
140:
141: case 0:
142: return 0;
143:
144: default:
145: printf("Invalid choice.\n");
146: }
147: }
148:
149: return 0;
150: }
151:
152:
153: /* Insert at beginning */
154: int insertbegin(int listdata[], int *listsize, int data)
155: {
156: int i;
157:
158: if (*listsize >= MAX)
159: return 0;
160:
161: for (i = *listsize; i > 0; i--)
162: listdata[i] = listdata[i - 1];
163:
164: listdata[0] = data;
165: (*listsize)++;
166:
167: return 1;
168: }
169:
170:
171: /* Insert at end */
172: int insertend(int listdata[], int *listsize, int data)
173: {
174: if (*listsize >= MAX)
175: return 0;
176:
177: listdata[*listsize] = data;
178: (*listsize)++;
179:
180: return 1;
181: }
182:
183:
184: /* Insert at given position */
185: int insertmiddle(int listdata[], int *listsize, int pos, int data)
186: {
187: int i;
188:
189: if (*listsize >= MAX || pos < 0 || pos > *listsize)
190: return 0;
191:
192: for (i = *listsize; i > pos; i--)
193: listdata[i] = listdata[i - 1];
194:
195: listdata[pos] = data;
196: (*listsize)++;
197:
198: return 1;
199: }
200:
201:
202: /* Delete from beginning */
203: int deletebegin(int listdata[], int *listsize)
204: {
205: int i;
206:
207: if (*listsize == 0)
208: return 0;
209:
210: for (i = 0; i < *listsize - 1; i++)
211: listdata[i] = listdata[i + 1];
212:
213: (*listsize)--;
214:
215: return 1;
216: }
217:
218:
219: /* Delete from end */
220: int deleteend(int listdata[], int *listsize)
221: {
222: if (*listsize == 0)
223: return 0;
224:
225: (*listsize)--;
226:
227: return 1;
228: }
229:
230:
231: /* Delete from given position */
232: int deletemiddle(int listdata[], int *listsize, int pos)
233: {
234: int i;
235:
236: if (*listsize == 0 || pos < 0 || pos >= *listsize)
237: return 0;
238:
239: for (i = pos; i < *listsize - 1; i++)
240: listdata[i] = listdata[i + 1];
241:
242: (*listsize)--;
243:
244: return 1;
245: }
246:
247:
248: /* Get data from given position */
249: int getdata(int listdata[], int listsize, int pos, int *data)
250: {
251: if (pos < 0 || pos >= listsize)
252: return 0;
253:
254: *data = listdata[pos];
255:
256: return 1;
257: }
258:
259:
260: /* Traverse the list */
261: void traverse(int listdata[], int listsize)
262: {
263: int i;
264:
265: if (listsize == 0)
266: {
267: printf("List is empty.\n");
268: return;
269: }
270:
271: printf("List elements: ");
272:
273: for (i = 0; i < listsize; i++)
274: printf("%d ", listdata[i]);
275:
276: printf("\n");
277: }
278:
279:
280: /* Search data */
281: int search(int listdata[], int listsize, int data)
282: {
283: int i;
284:
285: for (i = 0; i < listsize; i++)
286: {
287: if (listdata[i] == data)
288: return i;
289: }
290:
291: return -1;
292: }

You might also like