aiyu 发表于 2010-6-10 22:36:52

经验丰富的老鸟来谈谈 ~ 数据结构在通信行业的应用

数据结构这玩意在通信行业里有什么应用呢?




这是我们数据结构问答题   实在见识短浅希望各位老鸟谈谈自己的见解

Rocker 发表于 2010-6-11 09:02:43

不知道,mark

eworker 发表于 2010-6-11 09:27:07

如果读过路由器等设备的软件代码,就知道数据结构的重要了。

huohuansong 发表于 2010-6-11 09:40:27

是不是协议的问题,帧,包什么的

crazy_stone 发表于 2010-6-11 10:02:09

软件=算法+数据结构

ecomputer 发表于 2010-6-13 08:50:35

数据结构在哪个行业内没有用啊,哈哈!
你用看一下tcp/ip源码你就知道了

zqy517 发表于 2014-6-26 23:42:05


软件=算法+数据结构

sunliezhi 发表于 2014-6-27 01:19:09

无线网卡驱动代码(部分):

struct header_struct {
      /* 802.3 */
      u8 dest;
      u8 src;
      u16 len;
      /* 802.2 */
      u8 dsap;
      u8 ssap;
      u8 ctrl;
      /* SNAP */
      u8 oui;
      u16 ethertype;
} __attribute__ ((packed));

struct ieee802_11_mgmt {
        u16 frame_ctl;
        u16 duration_id;
        u8 addr1; /* destination addr */
        u8 addr2; /* source addr */
        u8 addr3; /* BSSID */
        u16 seq_ctl;
        u8 data;
        u32 fcs;
} __attribute__ ((packed));

struct ieee802_11_beacon_data {
        u8   timestamp;         // TSFTIMER
        u16beacon_interval;         // Kms between TBTTs (Target Beacon Transmission Times)
        u16capability_information;
        u8   data; /* contains: SSID (tag,length,value),
                          Supported Rates (tlv), channel */
} __attribute__ ((packed));

struct ieee802_11_auth_frame {
        u16 algorithm;
        u16 seq_nr;
        u16 status;
        u8 challenge;
} __attribute__ ((packed));



static
int auth_req(struct at76c503 *dev, struct bss_info *bss, int seq_nr, u8 *challenge)
{
        struct at76c503_tx_buffer *tx_buffer;
        struct ieee802_11_mgmt *mgmt;
        struct ieee802_11_auth_frame *req;
       
        int buf_len = (seq_nr != 3 ? AUTH_FRAME_SIZE :
                     AUTH_FRAME_SIZE + 1 + 1 + challenge);

        assert(bss != NULL);
        assert(seq_nr != 3 || challenge != NULL);
       
        tx_buffer = kmalloc(buf_len + MAX_PADDING_SIZE, GFP_ATOMIC);
        if (!tx_buffer)
                return -ENOMEM;

        mgmt = (struct ieee802_11_mgmt *)&(tx_buffer->packet);
        req= (struct ieee802_11_auth_frame *)&(mgmt->data);

        /* make wireless header */
        /* no need to care about endianness of constants - is taken care
           of in ieee802_11.h */
        /* first auth msg is not encrypted */
        mgmt->frame_ctl = IEEE802_11_FTYPE_MGMT | IEEE802_11_STYPE_AUTH;
        if (seq_nr == 3)
                mgmt->frame_ctl |= IEEE802_11_FCTL_WEP;

        mgmt->duration_id = cpu_to_le16(0x8000);
        memcpy(mgmt->addr1, bss->bssid, ETH_ALEN);
        memcpy(mgmt->addr2, dev->netdev->dev_addr, ETH_ALEN);
        memcpy(mgmt->addr3, bss->bssid, ETH_ALEN);
        mgmt->seq_ctl = 0;

        req->algorithm = dev->auth_mode;
        req->seq_nr = cpu_to_le16(seq_nr);
        req->status = 0;

        if (seq_nr == 3)
                memcpy(req->challenge, challenge, 1+1+challenge);

        /* init. at76c503 tx header */
        tx_buffer->wlength = cpu_to_le16(buf_len - AT76C503_TX_HDRLEN);
       
        dbg(DBG_TX_MGMT, "%s: AuthReq bssid %s alg %d seq_nr %d",
          dev->netdev->name, mac2str(mgmt->addr3),
          req->algorithm, req->seq_nr);
        if (seq_nr == 3) {
                char obuf __attribute__ ((unused));
                dbg(DBG_TX_MGMT, "%s: AuthReq challenge: %s ...",
                  dev->netdev->name,
                  hex2str(obuf, req->challenge, sizeof(obuf)/3,' '));
        }

        /* either send immediately (if no data tx is pending
           or put it in pending list */
        return send_mgmt_bulk(dev, tx_buffer);

} /* auth_req */

数据结构在通信行业不是应用,那是相当广的应用。

xi_liang 发表于 2014-6-27 01:25:54

看linux源码就知道了,数据结构无处不在

a7458969 发表于 2014-10-11 17:26:46

数据结构和通信行业没有必然的联系吧。数据结构多用在时间/内存空间敏感的场合,比如频繁插入确需要排序的数据,那么用链表就比用数组来得合适,如果是经常要查找而且节点之间联系比较复杂,那就需要用到树形结构。               

2005n2005 发表于 2014-10-21 10:47:18

哪里有 数据结构 树形结构的学习资料?之前自己都是乱写单片机程序,不知有什么好用的结构又省rom的结构吗?

tj7856 发表于 2014-10-21 10:52:40

路过,学习了

leicai05 发表于 2014-10-21 10:58:58

   一般写简单的程序,是使用不到复杂的数据结构的

   我一直认为,只有在项目应用中,所学到的知识才能够得到飞一般的提升,前提是你有一定的知识基础。

    我自己的感触是,买了stm32开发板在家里摸了一遍,什么感觉都没有,然后放在家里都一层灰了。。。。后来有项目要用stm32开发,不到一个月,也玩的有模有样,(借此机会也感谢amo论坛了)


   

页: [1]
查看完整版本: 经验丰富的老鸟来谈谈 ~ 数据结构在通信行业的应用