Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
ListaDuplamenteEncadeada/deployment.pri # This file was generated by an application wizard of Qt Creator. # The code below handles deployment to Android and Maemo, aswell as copying # of the application data to shadow build directories on desktop. # It is recommended not to modify this file, since newer versions of Qt Creator # may offer an updated version of it. defineTest(qtcAddDeployment) { for(deploymentfolder, DEPLOYMENTFOLDERS) { item = item$${deploymentfolder} greaterThan(QT_MAJOR_VERSION, 4) { itemsources = $${item}.files } else { itemsources = $${item}.sources } $$itemsources = $$eval($${deploymentfolder}.source) itempath = $${item}.path $$itempath= $$eval($${deploymentfolder}.target) export($$itemsources) export($$itempath) DEPLOYMENT += $$item } MAINPROFILEPWD = $$PWD android-no-sdk { for(deploymentfolder, DEPLOYMENTFOLDERS) { item = item$${deploymentfolder} itemfiles = $${item}.files $$itemfiles = $$eval($${deploymentfolder}.source) itempath = $${item}.path $$itempath = /data/user/qt/$$eval($${deploymentfolder}.target) export($$itemfiles) export($$itempath) INSTALLS += $$item } target.path = /data/user/qt export(target.path) INSTALLS += target } else:android { for(deploymentfolder, DEPLOYMENTFOLDERS) { item = item$${deploymentfolder} itemfiles = $${item}.files $$itemfiles = $$eval($${deploymentfolder}.source) itempath = $${item}.path $$itempath = /assets/$$eval($${deploymentfolder}.target) export($$itemfiles) export($$itempath) INSTALLS += $$item } x86 { target.path = /libs/x86 } else: armeabi-v7a { target.path = /libs/armeabi-v7a } else { target.path = /libs/armeabi } export(target.path) INSTALLS += target } else:win32 { copyCommand = for(deploymentfolder, DEPLOYMENTFOLDERS) { source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) source = $$replace(source, /, \\) sourcePathSegments = $$split(source, \\) target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments) target = $$replace(target, /, \\) target ~= s,\\\\\\.?\\\\,\\, !isEqual(source,$$target) { !isEmpty(copyCommand):copyCommand += && isEqual(QMAKE_DIR_SEP, \\) { copyCommand += $(COPY_DIR) \"$$source\" \"$$target\" } else { source = $$replace(source, \\\\, /) target = $$OUT_PWD/$$eval($${deploymentfolder}.target) target = $$replace(target, \\\\, /) copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\" } } } !isEmpty(copyCommand) { copyCommand = @echo Copying application data... && $$copyCommand copydeploymentfolders.commands = $$copyCommand first.depends = $(first) copydeploymentfolders export(first.depends) export(copydeploymentfolders.commands) QMAKE_EXTRA_TARGETS += first copydeploymentfolders } } else:ios { copyCommand = for(deploymentfolder, DEPLOYMENTFOLDERS) { source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) source = $$replace(source, \\\\, /) target = $CODESIGNING_FOLDER_PATH/$$eval($${deploymentfolder}.target) target = $$replace(target, \\\\, /) sourcePathSegments = $$split(source, /) targetFullPath = $$target/$$last(sourcePathSegments) targetFullPath ~= s,/\\.?/,/, !isEqual(source,$$targetFullPath) { !isEmpty(copyCommand):copyCommand += && copyCommand += mkdir -p \"$$target\" copyCommand += && cp -r \"$$source\" \"$$target\" } } !isEmpty(copyCommand) { copyCommand = echo Copying application data... && $$copyCommand !isEmpty(QMAKE_POST_LINK): QMAKE_POST_LINK += ";" QMAKE_POST_LINK += "$$copyCommand" export(QMAKE_POST_LINK) } } else:unix { maemo5 { desktopfile.files = $${TARGET}.desktop desktopfile.path = /usr/share/applications/hildon icon.files = $${TARGET}64.png icon.path = /usr/share/icons/hicolor/64x64/apps } else:!isEmpty(MEEGO_VERSION_MAJOR) { desktopfile.files = $${TARGET}_harmattan.desktop desktopfile.path = /usr/share/applications icon.files = $${TARGET}80.png icon.path = /usr/share/icons/hicolor/80x80/apps } else { # Assumed to be a Desktop Unix copyCommand = for(deploymentfolder, DEPLOYMENTFOLDERS) { source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) source = $$replace(source, \\\\, /) macx { target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target) } else { target = $$OUT_PWD/$$eval($${deploymentfolder}.target) } target = $$replace(target, \\\\, /) sourcePathSegments = $$split(source, /) targetFullPath = $$target/$$last(sourcePathSegments) targetFullPath ~= s,/\\.?/,/, !isEqual(source,$$targetFullPath) { !isEmpty(copyCommand):copyCommand += && copyCommand += $(MKDIR) \"$$target\" copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\" } } !isEmpty(copyCommand) { copyCommand = @echo Copying application data... && $$copyCommand copydeploymentfolders.commands = $$copyCommand first.depends = $(first) copydeploymentfolders export(first.depends) export(copydeploymentfolders.commands) QMAKE_EXTRA_TARGETS += first copydeploymentfolders } } !isEmpty(target.path) { installPrefix = $${target.path} } else { installPrefix = /opt/$${TARGET} } for(deploymentfolder, DEPLOYMENTFOLDERS) { item = item$${deploymentfolder} itemfiles = $${item}.files $$itemfiles = $$eval($${deploymentfolder}.source) itempath = $${item}.path $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target) export($$itemfiles) export($$itempath) INSTALLS += $$item } !isEmpty(desktopfile.path) { export(icon.files) export(icon.path) export(desktopfile.files) export(desktopfile.path) INSTALLS += icon desktopfile } isEmpty(target.path) { target.path = $${installPrefix}/bin export(target.path) } INSTALLS += target } export (ICON) export (INSTALLS) export (DEPLOYMENT) export (LIBS) export (QMAKE_EXTRA_TARGETS) } ListaDuplamenteEncadeada/funcoes.h //-------------------------------------------------------------------------------------------------- //adicionar no inicio da lista void addinicio(struct no **lista, int valor){ struct no *p; //auxiliar printf("\nValor do Elemento: "); scanf("%d",&valor); if((p = malloc(sizeof(struct no))) == NULL){//erro printf("\nMemory Failure"); }else{ p->info = valor; //recebendo valor p->esquerda = NULL; //esquerda é nulo pois a inseção é no inicio p->direita = *lista; //direita recebe a lista if(*lista != NULL){//se a lista não for nula então a esquerda recebe o valor (*lista)->esquerda = p; } //não pode ter um else, pois se não for nulo, ou insere na esquerda, ou a lista recebe o valor *lista = p; //lista recebe valor da direita } } void addfim(struct no **lista, int valor){//inserir no fim da lista struct no *pNow, *pNavegar; //ponteiro de navegação printf("\nValor do Elemento: "); scanf("%d",&valor); pNavegar = *lista; //navegação recebe a lista if((pNow = malloc(sizeof(struct no))) == NULL){//erro printf("\nMemory Failure\n"); }else{ //para conter algum valor pNow->info = valor; //recebe valor pNow->direita = NULL; //direita e esquerda são nulos pNow->esquerda = NULL; if(*lista == NULL) {//lista vazia *lista = pNow; }else{ while(pNavegar->direita != NULL){//navegar paraa o último elemento para inserir no fim pNavegar = pNavegar->direita; } pNavegar->direita = pNow; //o ultimo elemento recebe o valor (direita e esquerda do pNow continuam nulos) pNow->esquerda = pNavegar; //valor da esquerda recebe o valor contido acima e insere no fim } } } //-------------------------------------------------------------------------------------------------------- void imprimiresquerda(struct no *lista){//imprimir da esquerda para direita struct no *p; p = lista; if(p == NULL){//lista nula, lista vazia printf("\nLista Vazia"); }else{ while(p!=NULL) {//enquanto a lista não for nula printf("\nElemento: %d\n",p->info); //imprime o elemento p = p->direita; //passa para o próximo regitro } } } //----------------------------------------------------------------------------------------- struct no *buscar(struct no *lista, int valor) {//função passada para buscar, e retornar ponteiro struct no *retorno; //ponteiro de retorno int encontrou = 0; retorno = NULL; //se não encontrar então retorno é nulo while(lista != NULL) {//enquanto a lista não for nula if((lista->info) == valor){//se valor digitado for encotnrado retorno = lista; //retorno recebe a lista, para retornar ponteiro encontrou = 1; break; } lista = lista->direita; //próximo elemento } if(encontrou == 1) {//encontrou printf("\nElemento Encontrado com Sucesso!\n"); }else {//nao encontrou printf("\nElemento digitado %c inv%clido!\n",130,160); } return retorno;//retorno do ponteiro } //------------------------------------------------------------------------------------------ void remover(struct no **lista, int valor){//remover elemento desejado struct no *p,*aux;//auxiliar int encontrou = 0; p = *lista; printf("\nValor a Ser Removido: "); scanf("%d",&valor); aux = buscar(*lista, valor);//chamando função de busca if(*lista == NULL){//lista vazia printf("\nLista Vazia\n"); }else{ if(aux != NULL) {//se a lista não for nula if(aux->direita != NULL){//se no valor digitado a direita não for nula aux->direita->esquerda = aux->esquerda; //aux direita e esquerdqa recebe o valor da esquerda } if(aux->esquerda != NULL) {//e se a esquerda não for nula aux->esquerda->direita = aux->direita; //aux esquerda e direita recebe o valor da direita }else{//se os 2 forem nulos *lista = aux->direita; } free(aux); encontrou = 1; } if(encontrou == 1) {//mensagem printf("\nElemento removido com Sucesso!\n"); }else{ printf("\nElemento nao Encontrado\n"); } } } //---------------------------------------------------------------------------- void menu(){//menu printf("\n1) Inserir Inicio"); printf("\n2) Inserir no Fim"); printf("\n3) Imprimir da Esquerda para Direita"); printf("\n4) Buscar um Elemento e Exibir Ponteiro"); printf("\n5) Remover Elemento Desejado"); printf("\n\n0) Sair: "); } ListaDuplamenteEncadeada/lista.h struct no{ int info; struct no *esquerda, *direita; //direita = próximo elemento e esquerda = elemento anteriror }; void menu(); void addinicio(struct no **lista, int valor); //inserir no inicio void addfim(struct no **lista, int valor); void imprimiresquerda(struct no *lista); //imprimir da esquerda para direita void remover(struct no **lista, int valor); struct no *buscar(struct no *lista, int valor); ListaDuplamenteEncadeada/ListaDuplamenteEncadeada.pro TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt SOURCES += \ main.c \ principal.c include(deployment.pri) qtcAddDeployment() HEADERS += \ funcoes1.h \ lista1.h \ funcoes.h \ lista.h ListaDuplamenteEncadeada/ListaDuplamenteEncadeada.pro.user EnvironmentId {adb9ebfe-1bc2-4b54-b08b-e22ed67a7698} ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Qt 5.5.0 MinGW 32bit Desktop Qt 5.5.0 MinGW 32bit qt.55.win32_mingw492_kit 0 0 0 C:/Users/Diogo/Google Drive/PUC 2015-2/Enfase 1/Estrutura de dados/build-ListaDuplamenteEncadeada-Desktop_Qt_5_5_0_MinGW_32bit-Debug true qmake QtProjectManager.QMakeBuildStep false true false false false true Make Qt4ProjectManager.MakeStep false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true C:/Users/Diogo/Google Drive/PUC 2015-2/Enfase 1/Estrutura de dados/build-ListaDuplamenteEncadeada-Desktop_Qt_5_5_0_MinGW_32bit-Release true qmake QtProjectManager.QMakeBuildStep false true false false false true Make Qt4ProjectManager.MakeStep false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 ListaDuplamenteEncadeada Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Diogo/Google Drive/PUC 2015-2/Enfase 1/Estrutura de dados/ListaDuplamenteEncadeada/ListaDuplamenteEncadeada.pro ListaDuplamenteEncadeada.pro false true 3768 false true false false true 1 ProjectExplorer.Project.Target.1 Desktop Qt 5.4.2 MinGW 32bit2 Desktop Qt 5.4.2 MinGW 32bit2 qt.54.win32_mingw491_kit 0 0 0 C:/Users/Diogo/Google Drive/PUC 2015-2/Enfase 1/Estrutura de dados/build-ListaDuplamenteEncadeada-Desktop_Qt_5_4_2_MinGW_32bit2-Debug true qmake QtProjectManager.QMakeBuildStep false true false false false true Make Qt4ProjectManager.MakeStep false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true C:/Users/Diogo/Google Drive/PUC 2015-2/Enfase 1/Estrutura de dados/build-ListaDuplamenteEncadeada-Desktop_Qt_5_4_2_MinGW_32bit2-Release true qmake QtProjectManager.QMakeBuildStep false true false false false true Make Qt4ProjectManager.MakeStep false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -1 false %{buildDir} Custom Executable ProjectExplorer.CustomExecutableRunConfiguration 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 2 ProjectExplorer.Project.Updater.FileVersion 18 Version 18 ListaDuplamenteEncadeada/principal.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "lista.h" #include "funcoes.h" int main (){ struct no *lista, *p; int op, valor; lista = NULL; //lista nula do{ system("cls"); menu(); scanf("%d",&op); switch(op){ case 0: break; case 1: //inserir ni inicio addinicio(&lista, valor); break; case 2: addfim(&lista, valor); break; case 3: //imrpimir da esquerda para direita imprimiresquerda(lista); break; case 4: printf("\nBuscar Elemento: "); scanf("%d",&valor); printf("\nPonteiro: %p",buscar(lista,valor)); break; case 5: remover(&lista, valor); break; default: printf("\nOpcao Invalida!\n"); break; } getch(); }while(op!=0); while(lista!=NULL){//liberando memória p = lista; lista = lista->direita; free(p); } return 0; }
Compartilhar