當前位置:首頁 » 編程語言 » 數據結構c語言鄧文華
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數據結構c語言鄧文華

發布時間: 2022-01-31 12:00:25

㈠ 數據結構 c語言編程

你的 crt_linklist函數有問題,應為在你的主函數中,你在調用 crt_linklist函數時,實際上進行的的是值傳遞!你後來的初始化函數init_linklist以及創建鏈表函數crt_linklist對p都沒有什麼影響!這兩個函數所做的工作就只是對自己的形參處理了而已,當函數調用結束時,一切又消失了,實參p還是原來的樣子。你可以考慮在主函數中這樣修改就可以了:

int main()
{
lnode l;
elemtype i=30;
crt_linklist(&l,i);
output_linklist(&l);
return 0;
}

這種問題自己必須想明白,我們當初學習時也經常碰到這種問題,但只要你好好想想,這些問題就都能想明白的,你可以不斷實踐加深自己的理解!

㈡ 鄧文華的數據結構(C語言版)習題解答在哪有啊

你好哦。 有幸看到你的問題。 但是又很遺憾到現在還沒有人回答你的問題。也可能你現在已經在別的地方找到了答案,那就得恭喜你啦。 可能是你問的問題有些專業了,沒人會。或者別人沒有遇到或者接觸過你的問題,所以幫不了你。建議你去問題的相關論壇去求助,那裡的人通常比較多,也比較熱心,可能能快點幫你解決問題。 祝你好運~! 希望我的回答也能夠幫到你! 謝謝

㈢ 數據結構(c語言)

1.數據結構是一門研究非數值計算的程序設計問題中計算機的 A 以及它們之間的 _ B 和運算等的學科。
① A. 數據元素 B. 計算方法 C. 邏輯存儲 D. 數據映象
② A. 結構 B. 關系 C. 運算 D. 演算法
2.數據結構被形式地定義為(K,R),其中K是 B 的有限集,R是K上的 A 有限集。
① A. 演算法 B. 數據元素 C. 數據操作 D. 邏輯結構
② A. 操作 B. 映象 C. 存儲 D. 關系
3.在數據結構中,從邏輯上可以把數據結構分成____C____。
A. 動態結構和靜態結構 B. 緊湊結構和非緊湊結構
C. 線性結構和非線性結構 D. 內部結構和外部結構
4.演算法分析的目的是 C ,演算法分析的兩個主要方面是 A 。
① A. 找出數據結構的合理性 B. 研究演算法中的輸入和輸出的關系
C. 分析演算法的效率以求改進 D. 分析演算法的易懂性和文檔性
② A. 空間復雜度和時間復雜度 B. 正確性和簡單性
C. 可讀性和文檔性 D. 數據復雜性和程序復雜性
5.計算機演算法指的是 C ,它必須具備輸入、輸出和 C 等5個特性。
① A. 計算方法 B. 排序方法
C. 解決問題的有限運算序列 D. 調度方法
② A. 可執行性、可移植性和可擴充性
B. 可行性、確定性和有窮性
C. 確定性、有窮性和穩定性
D. 易讀性、穩定性和安全性

三、填空題
1.下面程序段的時間復雜度是___O(n*m)____。
For (i=0;i<n;i++)
For (j=0;j<m;j++)
A[i][j]=0;
2.下面程序段的時間復雜度是___O(n^(1/2))____。
i=s=0
While(s<n)
{
i++; /* i=i+1 */
s+=i; /* s=s+i */
}
3.下面程序段的時間復雜度是___O(n^2)____。
s=0;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
s+=B[i][j];
sum=s;
4.下面程序段的時間復雜度是__O(log3 N)(註:對N取3的對數)_____。
i=1;
While (i<=n)
i=i*3;

㈣ 數據結構c語言版

#include "stdio.h"
typedef char datatype;
typedef struct node{

datatype data;

struct node *next;
} stack;
stack * creat(void)
{
char ch;
stack * head;
stack *p;
head=NULL;/*初始化為空*/
ch=getchar( );
while (ch!='\n'){
p=(stack*)malloc(sizeof(stack));/*分配空間*/
p->data=ch;/*數據域賦值*/
p->next=head;/*指定後繼指針*/
head=p;/*head指針指定到新插入的結點上*/
ch=getchar( );
}
return (head);
}

void MakeNull(stack *s)/*使棧s為空*/
{
stack *p=s;
while(s!=NULL){
s=s->next;
free(p);/*釋放空間*/
p=s;
}
}

datatype Top(stack *s)
{
if(Empty(s))/*s為空棧,直接跳出,提示出錯信息*/
printf("The stack is empty.");
else
return s->data;
}

void Pop(stack *s)
{
stack *p;
if(Empty(s)) /*s為空棧,直接跳出,提示出錯信息*/
printf("The stack is empty.");
else{
p=s;
s=s->next;
free(p);/*釋放棧頂空間*/
}
}

void Push(stack *s,datatype x)
{

stack *p;
p=(stack*)malloc(sizeof(stack));
p->data=x;
p->next=s;
s=p;
}

int Empty(stack *s)
{
return(s==NULL);
}

void main()
{
stack* m_stack=creat();
char m_top;
if(!Empty(m_stack))
{
m_top=Top(m_stack);
Pop(m_stack);
}
else
Push(m_stack,'a');
MakeNull(m_stack);
}

㈤ 數據結構c語言

  1. 在「printf(" the value is: ");」的前面,不是用了「Find(list,0,&x);」函數嗎?這句就是想在屏幕上顯示信息:「所查找的值是:」嘛。

  2. 提問的第二個語句「printf("%d",l);」里,是輸出變數l「小寫的字母L」的值,也就是應該是前面的「Find(list,0,&x);」執行過後,變數l「小寫的字母L」的值是找到了的節點的位置數吧。

  3. 變數l「小寫的字母L」,看起來應該是一個全局變數。

希望能幫到你。如有幫助,煩請點採納,謝謝!

㈥ 數據結構(C語言)

#define Status bool
#define ElemType int
typedef struct list{
ElemType data;
struct list *next;
struct list *pre;
}*CLQueue;

Status InitCLQueue(CLQueue &rear)
{
CLQueue q = (CLQueue )malloc(sizeof(struct list));
rear = q;
rear->next = rear->pre = rear;
return true;
}

Status EnCLQueue(CLQueue &rear, ElemType x)
{
CLQueue q = (CLQueue)malloc(sizeof(struct list));
q->data = x;
if(rear->next == rear)
{
rear->next = rear->pre =q;
q->next = q->pre = rear;
rear = q;
}
else
{
q->pre = rear->next;
q->next = rear->next->next;
rear->next->next->pre = q;
rear->next->next = q;
}
return true;
}

Status DeCLQueue(CLQueue &rear, ElemType &x)
{
if(rear->next == rear) return false;
rear = rear->pre;
CLQueue q = rear->next;
q->next->pre = rear;
rear->next = q->next;
free(q);
return true;
}

㈦ 數據結構C語言

1.函數中需要修改鏈表頭指針LC的值,所以得用引用

2.用引用的原因和上面一樣,你貼的代碼少了個大括弧,h指向頭結點,f=h->next一句將f指向鏈表第一個結點,也就是相當於一個無頭結點鏈表的表頭指針,因無上下文,不能推測確切意圖

3.這個是你理解混亂了,這段代碼是將t,p,q整體後移一位,你畫個圖看就比較清楚了

4.p->prior->next=q當然有用,它將前面結點的next指針指向插入的值為y的結點

5.L->next==L是指原表為空的情況,當然就是要直接放入,你改成s=L一上來就把要插入結點的指針丟失了,怎麼可能完成呢

關於鏈表的東西你畫出個大概的圖會清晰許多!

㈧ 數據結構(C語言)

現在的數據結構C語言版一般都不是純C語言(一般你仔細看書的話,書上有明說),&x是引用類型的意思(是C++里的語法)。也就是說,如果 void init_queue(linkqueue*Q)而不是void init_queue(linkqueue * &Q),則Q這個指針在init_queue這個函數內部是無論如何也不會改變指向的(雖然你能改變它指向的地址里的東西,但你無法讓Q指向其它的地方,即使你寫把Q重新賦了值,但,形參的改變是不會影響到實參的)
如果不明白,仔細看下下面這篇文章:
我以前寫的^_^:
http://hi..com/3bian/blog/item/487d6e39af83362eb9998f51.html
看裡面的「轉變三、引用類型的引入」

㈨ 數據結構(c語言)

這個問題的演算法要考慮周全,程序倒不復雜。以四節火車為例,
1,首先考慮四節火車進站的可能順序有4!=24種可能。
2,出站時機有2^3=8種可能(以大寫字母表入站,小寫字母表出站):
出站發生一次有一種情況(ABCDdcba);
出站發生二次有三種情況(AaBCDdcb,ABbaCDdc,ABCcbaDd);
出站發生三次有三種情況(AaBbCDdc,AaBCcbDd,ABbaCcDd);
出站發生四次有一種情況(AaBbCcDd);
綜上,四節火車的全部調度可能是4!×2^(4-1)=24*8=192種可能。
N節火車情況與此相似。
程序實現時可用循環或遞歸。