當前位置:係統粉 > 電腦問答 > 其他問答 > 數據結構,程序急救

數據結構,程序急救

提問者:小洋還是孩子  |  瀏覽 次  |  提問時間:2017-01-19  |  回答數量:4

數據結構,程序急救 題目:單鏈表中有幾個字符,設計一個算法,使用棧判斷該字符串是否中心對稱,如abccba就是中心對稱的字符串.我寫了一個程序是這樣的,老是是調不出來..幫忙看一下..謝謝了...#include <stdio.h>#include <stdlib.h>#include <iostream.h>#define max 100typedef struct node{  char data;  struct node *next;}cnode;cnode *create(char s[]){  int i=0;  cnode *h,*p,*r;  while(s!=&#39;\\0&#39;)  {    p=(cnode *)malloc(sizeof(cnode));    p->data=s;    p->next=NULL;    if(i==0)    {      h=p;      r=h;    }    else    {      r->next=p;      r=p;    }    i++;  }

已有4條答案
紫鳶在天

紫鳶在天

回答數:112  |  被采納數:129

2017-01-19 12:23:33
沒有很仔細的看,但是我覺得不用使用棧就可以了,分2種情況討論,一種是字符數為奇數,一種是偶數,就像中間開花那樣,從中間下標開始索引向兩頭遍曆就可以了的。

棧的話,也是分奇數和偶數的情況吧,先把一半數據入棧,然後再出棧與剩下半邊數據做比較,有不同就不符合題意~
讚 11
司馬★流雲

司馬★流雲

回答數:182  |  被采納數:65

2017-01-19 12:33:43
[s:476] 他們要求要用棧的形式,,,
讚 18
雷r霆a萬y鈞

雷r霆a萬y鈞

回答數:23  |  被采納數:95

2017-01-19 15:37:45
你既然要用棧,為什麼找不到你建的棧在哪裏?
那個create函數建的是什麼?鏈表?
錯誤太多了,我寫了一個給你參考一下吧。
#define STACK_INIT_SIZE100 //棧的初始空間為100#define STACKINCREMENT10 //每次追加的空間為10#define TRUE 1#define FALSE 0#define ElemType char //定義元素型為字符型。#include <stdlib.h>#include <iostream.h>#define max 100#include <stdio.h>typedef struct{ElemType *base;ElemType *top;int stacksize;}SqStack;/************************************************************************************1.建立一個初始空間為100的棧。************************************************************************************/int Create(SqStack &S) {S.base = (ElemType *)malloc(STACK_INIT_SIZE *sizeof(ElemType)); S.top=S.base;S.stacksize = STACK_INIT_SIZE;return TRUE;}/************************************************************************************2.插入新的棧頂元素。************************************************************************************/int Push(SqStack &S,ElemType e) {/*if(S.top-S.base==S.stacksize) //棧滿追加空間。{ S.base = (ElemType *) realloc (S.base,(S.stacksize + STACKINCREMENT)*sizeof(ElemType)); S.top = S.base + S.stacksize; S.stacksize += STACKINCREMENT;}因為你的字符串不會超過100所以這部分可省略。*/*S.top++ = e; //S.top指向的是棧頂元素的上一個空間。return TRUE;}int main(){char a[max],*p,*q;SqStack S;Create(S);cin>>a;for(int i=0;a[i]!=&#39;\0&#39;;i++) //將字符串輸入棧中。 Push(S,a[i]);p = S.base; //P指向棧底元素q = S.top-1; //q指向棧頂元素while(*p == *q) { p++; q--; if(p == q||p == q+1) break;}if(p == q||p == q+1) cout<<a<<"是中心對稱。"<<endl;else cout<<a<<"不是中心對稱。"<<endl;return 1;//做完之後還要銷毀棧,這裏我就不寫了。}複製代碼
讚 2
未見花名n

未見花名n

回答數:105  |  被采納數:13

2017-01-19 18:23:21
謝謝了
讚 10
解決方法
  • 微信小程序發布數據助手 遠程查看數據

    微信小程序發布數據助手 遠程查看數據

    5月13日消息:動作不斷的微信小程序現在又有新東西了,這次發布的是“小程序數據助手”,該工具將幫助小程序的開發和運營者更方便地查看運營數據。  據悉,“小程序數據助手”支持相關開...

  • 結束程序進程,結束程序進程方法的方法 怎麼結束程序進程,結束程序進程方法

    結束程序進程,結束程序進程方法的方法 怎麼結束程序進程,結束程序進程方法

    今天給大家帶來結束程序進程,結束程序進程方法的方法,怎麼結束程序進程,結束程序進程方法,讓您輕鬆解決問題。相信很多人都遇到過,有些程序,雖然是把主界麵關閉,程序也退出了,但是還是有...

  • excel教程之入門(72)數據排序

    excel教程之入門(72)數據排序

    今天我們來學習數據的排序具體方法如下:1我們在excel軟件中建立這樣一個表格2然後我們選中如圖所示的表格3點擊上麵的數據——排序4把主要關鍵字調為總分,後麵的升序就是從底到高排列...

  • 蘋果電腦係統如何急救 蘋果電腦係統急救常識

    蘋果電腦係統如何急救 蘋果電腦係統急救常識

    今天給大家帶來蘋果電腦係統如何急救,蘋果電腦係統急救常識,讓您輕鬆解決問題。蘋果Mac OSX是蘋果公司根據蘋果電腦硬件的要求去開發的,是以UNIX係統為核心。因而是一個功能很強,...

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航