Operações básicas de tabelas sequenciais em tabelas lineares (criar, inserir, excluir, produzir) e operações básicas de listas unidas individualmente (criar, excluir, produzir)

Lista com link único: (usando citação, executar em c ++)
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 //
estrutura de typedef de comprimento máximo // cria
{ int * i; int length; } sqlist ; bool newsqlist (sqlist & L) { Li = (int *) (malloc) (sizeof (int [MAXSIZE])); // Aplicar para espaço if (! Li) { return false; } else { L.length = 0; // Tenha cuidado para não omitir return true; } } bool Insert (sqlist & L, int i, int j) // i é o endereço, j é o elemento { if (i <1 || i> L.length + 1 ) { return false; ) // Erro de endereço if (L.length> = MAXSIZE) // Espaço insuficiente return false;
























for (int j = L.length-1; j> = i-1; j -) // Mova todos os elementos após o ponto de inserção para trás em uma unidade
{ Li [j + 1] = Li [j]; } Li [ i-1] = j; // sobrescrever o elemento original L.length ++; return true; } bool Get (sqlist L, int i, int & e) // i é o endereço, j é o elemento & representa a referência { if (i <1 || i> L.length + 1) return false; e = Li [i-1]; // O endereço começa em 1, e o subscrito começa em zero, então subtraia um. return true; } bool deletem (sqlist & L, int i) { if (i <1 || i> L.length + 1) return false; else { for (int j = i; j <L.length; j ++) { Li [j- 1] = Li [j]; } L.length–; } retornar verdadeiro; }



























int localize (listaq L, int i)
{ para (int j = 0; j <L.comprimento; j ++) { if (Li [j] == i) { return j + 1; } } return 0; } int main () { sqlist L; int l, e, p; if (! newsqlist (L)) printf (“nova sqlist falhou \ n”); else { printf (“nova sqlist pronta \ n”); printf (“insira o comprimento \ n”); scanf_s ("% d", & l); printf (“insira os dados: \ n”); para (int i = 1; i <= l; i ++) { scanf_s ("% d", & e); Insira (L, i, e); } printf (“a sqlist é \ n”); para (int i = 1; i <= L.length; i ++)




























{ Get (L, i, e); printf ("% d", e); } printf (“insira a localização para deletar: \ n”); scanf_s ("% d", & l); deletem (L, 1); para (int i = 1; i <= L.comprimento; i ++) { Get (L, i, e); printf ("% d“, e); } printf (”\ n insira o elemento para localizar \ n"); scanf_s ("% d", & e); p = localizar (L, e); if (! p) { printf (“erro”); } else { printf ("% d", p); } } return 0; }单 链表: #include <stdio.h> #include <stdlib.h> struct ListNode { int data;































};
struct ListNode * readlist ();
void print (struct ListNode * l);
struct ListNode * deletem (int i, struct ListNode * j);
int main ()
{ struct ListNode * l = readlist (); int i; scanf_s ("% d", & i); l = deletem (i, l); return 0; } struct ListNode * readlist () { struct ListNode * head, * tail, * p; cabeça = NULL; cauda = NULL; while (1) { p = (struct ListNode *) (malloc (sizeof (struct ListNode))); scanf_s ("% d", & p-> dados); se (p-> dados == -1) quebra; p-> próximo = NULL; } }



















Acho que você gosta

Origin blog.csdn.net/weixin_51235620/article/details/114672849
Recomendado
Clasificación